chore(solc): remove async feature requirement (#1181)

This commit is contained in:
Matthias Seitz 2022-04-27 14:37:40 +02:00 committed by GitHub
parent a0f41c51af
commit 8afd670a65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 17 deletions

View File

@ -224,7 +224,7 @@ impl Solc {
/// Returns the list of all versions that are available to download and marking those which are /// Returns the list of all versions that are available to download and marking those which are
/// already installed. /// already installed.
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn all_versions() -> Vec<SolcVersion> { pub fn all_versions() -> Vec<SolcVersion> {
let mut all_versions = Self::installed_versions(); let mut all_versions = Self::installed_versions();
let mut uniques = all_versions let mut uniques = all_versions
@ -285,7 +285,7 @@ impl Solc {
/// to build it, and returns it. /// to build it, and returns it.
/// ///
/// If the required compiler version is not installed, it also proceeds to install it. /// If the required compiler version is not installed, it also proceeds to install it.
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn detect_version(source: &Source) -> Result<Version> { pub fn detect_version(source: &Source) -> Result<Version> {
// detects the required solc version // detects the required solc version
let sol_version = Self::source_version_req(source)?; let sol_version = Self::source_version_req(source)?;
@ -296,7 +296,7 @@ impl Solc {
/// used to build it, and returns it. /// used to build it, and returns it.
/// ///
/// If the required compiler version is not installed, it also proceeds to install it. /// If the required compiler version is not installed, it also proceeds to install it.
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn ensure_installed(sol_version: &VersionReq) -> Result<Version> { pub fn ensure_installed(sol_version: &VersionReq) -> Result<Version> {
#[cfg(any(test, feature = "tests"))] #[cfg(any(test, feature = "tests"))]
let _lock = take_solc_installer_lock(); let _lock = take_solc_installer_lock();
@ -371,7 +371,7 @@ impl Solc {
} }
/// Blocking version of `Self::install` /// Blocking version of `Self::install`
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn blocking_install(version: &Version) -> std::result::Result<Self, svm::SolcVmError> { pub fn blocking_install(version: &Version) -> std::result::Result<Self, svm::SolcVmError> {
tracing::trace!("blocking installing solc version \"{}\"", version); tracing::trace!("blocking installing solc version \"{}\"", version);
crate::report::solc_installation_start(version); crate::report::solc_installation_start(version);
@ -389,7 +389,7 @@ impl Solc {
/// Verify that the checksum for this version of solc is correct. We check against the SHA256 /// Verify that the checksum for this version of solc is correct. We check against the SHA256
/// checksum from the build information published by binaries.soliditylang /// checksum from the build information published by binaries.soliditylang
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn verify_checksum(&self) -> Result<()> { pub fn verify_checksum(&self) -> Result<()> {
let version = self.version_short()?; let version = self.version_short()?;
let mut version_path = svm::version_path(version.to_string().as_str()); let mut version_path = svm::version_path(version.to_string().as_str());
@ -733,7 +733,7 @@ mod tests {
#[test] #[test]
// This test might be a bit hard to maintain // This test might be a bit hard to maintain
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
fn test_detect_version() { fn test_detect_version() {
for (pragma, expected) in [ for (pragma, expected) in [
// pinned // pinned

View File

@ -140,7 +140,7 @@ impl<'a, T: ArtifactOutput> ProjectCompiler<'a, T> {
/// let project = Project::builder().build().unwrap(); /// let project = Project::builder().build().unwrap();
/// let output = project.compile().unwrap(); /// let output = project.compile().unwrap();
/// ``` /// ```
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn new(project: &'a Project<T>) -> Result<Self> { pub fn new(project: &'a Project<T>) -> Result<Self> {
Self::with_sources(project, project.paths.read_input_files()?) Self::with_sources(project, project.paths.read_input_files()?)
} }
@ -151,7 +151,7 @@ impl<'a, T: ArtifactOutput> ProjectCompiler<'a, T> {
/// ///
/// Multiple (`Solc` -> `Sources`) pairs can be compiled in parallel if the `Project` allows /// Multiple (`Solc` -> `Sources`) pairs can be compiled in parallel if the `Project` allows
/// multiple `jobs`, see [`crate::Project::set_solc_jobs()`]. /// multiple `jobs`, see [`crate::Project::set_solc_jobs()`].
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn with_sources(project: &'a Project<T>, sources: Sources) -> Result<Self> { pub fn with_sources(project: &'a Project<T>, sources: Sources) -> Result<Self> {
let graph = Graph::resolve_sources(&project.paths, sources)?; let graph = Graph::resolve_sources(&project.paths, sources)?;
let (versions, edges) = graph.into_sources_by_version(project.offline)?; let (versions, edges) = graph.into_sources_by_version(project.offline)?;

View File

@ -209,7 +209,7 @@ impl<T: ArtifactOutput> Project<T> {
let sources = self.paths.read_input_files()?; let sources = self.paths.read_input_files()?;
tracing::trace!("found {} sources to compile: {:?}", sources.len(), sources.keys()); tracing::trace!("found {} sources to compile: {:?}", sources.len(), sources.keys());
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
if self.auto_detect { if self.auto_detect {
tracing::trace!("using solc auto detection to compile sources"); tracing::trace!("using solc auto detection to compile sources");
return self.svm_compile(sources) return self.svm_compile(sources)
@ -243,7 +243,7 @@ impl<T: ArtifactOutput> Project<T> {
/// let output = project.svm_compile(sources).unwrap(); /// let output = project.svm_compile(sources).unwrap();
/// # } /// # }
/// ``` /// ```
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn svm_compile(&self, sources: Sources) -> Result<ProjectCompileOutput<T>> { pub fn svm_compile(&self, sources: Sources) -> Result<ProjectCompileOutput<T>> {
project::ProjectCompiler::with_sources(self, sources)?.compile() project::ProjectCompiler::with_sources(self, sources)?.compile()
} }
@ -260,7 +260,7 @@ impl<T: ArtifactOutput> Project<T> {
/// let output = project.compile_file("example/Greeter.sol").unwrap(); /// let output = project.compile_file("example/Greeter.sol").unwrap();
/// # } /// # }
/// ``` /// ```
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn compile_file(&self, file: impl Into<PathBuf>) -> Result<ProjectCompileOutput<T>> { pub fn compile_file(&self, file: impl Into<PathBuf>) -> Result<ProjectCompileOutput<T>> {
let file = file.into(); let file = file.into();
let source = Source::read(&file)?; let source = Source::read(&file)?;
@ -282,7 +282,7 @@ impl<T: ArtifactOutput> Project<T> {
/// ).unwrap(); /// ).unwrap();
/// # } /// # }
/// ``` /// ```
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn compile_files<P, I>(&self, files: I) -> Result<ProjectCompileOutput<T>> pub fn compile_files<P, I>(&self, files: I) -> Result<ProjectCompileOutput<T>>
where where
I: IntoIterator<Item = P>, I: IntoIterator<Item = P>,
@ -321,7 +321,7 @@ impl<T: ArtifactOutput> Project<T> {
/// ).unwrap(); /// ).unwrap();
/// # } /// # }
/// ``` /// ```
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
pub fn compile_sparse<F: FileFilter + 'static>( pub fn compile_sparse<F: FileFilter + 'static>(
&self, &self,
filter: F, filter: F,
@ -807,7 +807,7 @@ impl<T: ArtifactOutput> ArtifactOutput for Project<T> {
} }
#[cfg(test)] #[cfg(test)]
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
mod tests { mod tests {
use crate::remappings::Remapping; use crate::remappings::Remapping;

View File

@ -380,7 +380,7 @@ impl Graph {
} }
} }
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
impl Graph { impl Graph {
/// Consumes the nodes of the graph and returns all input files together with their appropriate /// Consumes the nodes of the graph and returns all input files together with their appropriate
/// version and the edges of the graph /// version and the edges of the graph
@ -689,14 +689,14 @@ impl<'a> Iterator for NodesIter<'a> {
} }
/// Container type for solc versions and their compatible sources /// Container type for solc versions and their compatible sources
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
#[derive(Debug)] #[derive(Debug)]
pub struct VersionedSources { pub struct VersionedSources {
inner: HashMap<crate::SolcVersion, Sources>, inner: HashMap<crate::SolcVersion, Sources>,
offline: bool, offline: bool,
} }
#[cfg(all(feature = "svm-solc", feature = "async"))] #[cfg(all(feature = "svm-solc"))]
impl VersionedSources { impl VersionedSources {
/// Resolves or installs the corresponding `Solc` installation. /// Resolves or installs the corresponding `Solc` installation.
pub fn get( pub fn get(