Skip to content

Commit

Permalink
chore: bump ethers and solang-parser (foundry-rs#5725)
Browse files Browse the repository at this point in the history
  • Loading branch information
DaniPopes authored Aug 25, 2023
1 parent 95a93cd commit ae3ec74
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 56 deletions.
63 changes: 31 additions & 32 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ ethers-solc = { git = "https://github.com/gakonst/ethers-rs", default-features =
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
hex = { package = "const-hex", version = "1.6", features = ["hex"] }
itertools = "0.11"
solang-parser = "=0.3.1"
solang-parser = "=0.3.2"

#[patch."https://github.com/gakonst/ethers-rs"]
#ethers = { path = "../ethers-rs/ethers" }
Expand Down
6 changes: 5 additions & 1 deletion crates/chisel/src/session_source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,11 @@ contract {} {{
pt::Import::Plain(s, _) |
pt::Import::Rename(s, _, _) |
pt::Import::GlobalSymbol(s, _, _) => {
let path = PathBuf::from(s.string);
let s = match s {
pt::ImportPath::Filename(s) => s.string.clone(),
pt::ImportPath::Path(p) => p.to_string(),
};
let path = PathBuf::from(s);

match fs::read_to_string(path) {
Ok(source) => {
Expand Down
28 changes: 15 additions & 13 deletions crates/fmt/src/formatter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use crate::{
comments::{
CommentPosition, CommentState, CommentStringExt, CommentType, CommentWithMetadata, Comments,
},
helpers::import_path_string,
macros::*,
solang_ext::{pt::*, *},
string::{QuoteState, QuotedStringExt},
Expand All @@ -15,6 +16,7 @@ use crate::{
use ethers_core::{types::H160, utils::to_checksum};
use foundry_config::fmt::{MultilineFuncHeaderStyle, SingleLineBlockStyle};
use itertools::{Either, Itertools};
use solang_parser::pt::ImportPath;
use std::{fmt::Write, str::FromStr};
use thiserror::Error;

Expand Down Expand Up @@ -1810,12 +1812,12 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
}

#[instrument(name = "import_plain", skip_all)]
fn visit_import_plain(&mut self, loc: Loc, import: &mut StringLiteral) -> Result<()> {
fn visit_import_plain(&mut self, loc: Loc, import: &mut ImportPath) -> Result<()> {
return_source_if_disabled!(self, loc, ';');

self.grouped(|fmt| {
write_chunk!(fmt, loc.start(), import.loc.start(), "import")?;
fmt.write_quoted_str(import.loc, None, &import.string)?;
write_chunk!(fmt, loc.start(), import.loc().start(), "import")?;
fmt.write_quoted_str(import.loc(), None, &import_path_string(import))?;
fmt.write_semicolon()?;
Ok(())
})?;
Expand All @@ -1826,14 +1828,14 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
fn visit_import_global(
&mut self,
loc: Loc,
global: &mut StringLiteral,
global: &mut ImportPath,
alias: &mut Identifier,
) -> Result<()> {
return_source_if_disabled!(self, loc, ';');

self.grouped(|fmt| {
write_chunk!(fmt, loc.start(), global.loc.start(), "import")?;
fmt.write_quoted_str(global.loc, None, &global.string)?;
write_chunk!(fmt, loc.start(), global.loc().start(), "import")?;
fmt.write_quoted_str(global.loc(), None, &import_path_string(global))?;
write_chunk!(fmt, loc.start(), alias.loc.start(), "as")?;
alias.visit(fmt)?;
fmt.write_semicolon()?;
Expand All @@ -1847,16 +1849,16 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
&mut self,
loc: Loc,
imports: &mut [(Identifier, Option<Identifier>)],
from: &mut StringLiteral,
from: &mut ImportPath,
) -> Result<()> {
return_source_if_disabled!(self, loc, ';');

if imports.is_empty() {
self.grouped(|fmt| {
write_chunk!(fmt, loc.start(), "import")?;
fmt.write_empty_brackets()?;
write_chunk!(fmt, loc.start(), from.loc.start(), "from")?;
fmt.write_quoted_str(from.loc, None, &from.string)?;
write_chunk!(fmt, loc.start(), from.loc().start(), "from")?;
fmt.write_quoted_str(from.loc(), None, &import_path_string(from))?;
fmt.write_semicolon()?;
Ok(())
})?;
Expand All @@ -1869,7 +1871,7 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {

self.surrounded(
SurroundingChunk::new("{", Some(imports_start), None),
SurroundingChunk::new("}", None, Some(from.loc.start())),
SurroundingChunk::new("}", None, Some(from.loc().start())),
|fmt, _multiline| {
let mut imports = imports.iter_mut().peekable();
let mut import_chunks = Vec::new();
Expand All @@ -1892,7 +1894,7 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
}

let multiline = fmt.are_chunks_separated_multiline(
&format!("{{}} }} from \"{}\";", from.string),
&format!("{{}} }} from \"{}\";", import_path_string(from)),
&import_chunks,
",",
)?;
Expand All @@ -1902,8 +1904,8 @@ impl<'a, W: Write> Visitor for Formatter<'a, W> {
)?;

self.grouped(|fmt| {
write_chunk!(fmt, imports_start, from.loc.start(), "from")?;
fmt.write_quoted_str(from.loc, None, &from.string)?;
write_chunk!(fmt, imports_start, from.loc().start(), "from")?;
fmt.write_quoted_str(from.loc(), None, &import_path_string(from))?;
fmt.write_semicolon()?;
Ok(())
})?;
Expand Down
7 changes: 7 additions & 0 deletions crates/fmt/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,10 @@ pub fn print_diagnostics_report(
}
Ok(())
}

pub fn import_path_string(path: &ImportPath) -> String {
match path {
ImportPath::Filename(s) => s.string.clone(),
ImportPath::Path(p) => p.to_string(),
}
}
6 changes: 6 additions & 0 deletions crates/fmt/src/solang_ext/ast_eq.rs
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,12 @@ derive_ast_eq! { enum SourceUnitPart {
Annotation(annotation),
_
}}
derive_ast_eq! { enum ImportPath {
_
Filename(lit),
Path(path),
_
}}
derive_ast_eq! { enum Import {
_
Plain(string, loc),
Expand Down
9 changes: 9 additions & 0 deletions crates/fmt/src/solang_ext/loc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,15 @@ impl CodeLocationExt for pt::SourceUnitPart {
}
}

impl CodeLocationExt for pt::ImportPath {
fn loc(&self) -> pt::Loc {
match self {
Self::Filename(s) => s.loc(),
Self::Path(i) => i.loc(),
}
}
}

macro_rules! impl_delegate {
($($t:ty),+ $(,)?) => {$(
impl CodeLocationExt for $t {
Expand Down
12 changes: 6 additions & 6 deletions crates/fmt/src/solang_ext/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ pub mod pt {
Annotation, Base, CatchClause, Comment, ContractDefinition, ContractPart, ContractTy,
EnumDefinition, ErrorDefinition, ErrorParameter, EventDefinition, EventParameter,
Expression, FunctionAttribute, FunctionDefinition, FunctionTy, HexLiteral, Identifier,
IdentifierPath, Import, Loc, Mutability, NamedArgument, OptionalCodeLocation, Parameter,
ParameterList, SourceUnit, SourceUnitPart, Statement, StorageLocation, StringLiteral,
StructDefinition, Type, TypeDefinition, UserDefinedOperator, Using, UsingFunction,
UsingList, VariableAttribute, VariableDeclaration, VariableDefinition, Visibility,
YulBlock, YulExpression, YulFor, YulFunctionCall, YulFunctionDefinition, YulStatement,
YulSwitch, YulSwitchOptions, YulTypedIdentifier,
IdentifierPath, Import, ImportPath, Loc, Mutability, NamedArgument, OptionalCodeLocation,
Parameter, ParameterList, SourceUnit, SourceUnitPart, Statement, StorageLocation,
StringLiteral, StructDefinition, Type, TypeDefinition, UserDefinedOperator, Using,
UsingFunction, UsingList, VariableAttribute, VariableDeclaration, VariableDefinition,
Visibility, YulBlock, YulExpression, YulFor, YulFunctionCall, YulFunctionDefinition,
YulStatement, YulSwitch, YulSwitchOptions, YulTypedIdentifier,
};
}

Expand Down
6 changes: 3 additions & 3 deletions crates/fmt/src/visit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ pub trait Visitor {
fn visit_import_plain(
&mut self,
_loc: Loc,
_import: &mut StringLiteral,
_import: &mut ImportPath,
) -> Result<(), Self::Error> {
Ok(())
}

fn visit_import_global(
&mut self,
_loc: Loc,
_global: &mut StringLiteral,
_global: &mut ImportPath,
_alias: &mut Identifier,
) -> Result<(), Self::Error> {
Ok(())
Expand All @@ -55,7 +55,7 @@ pub trait Visitor {
&mut self,
_loc: Loc,
_imports: &mut [(Identifier, Option<Identifier>)],
_from: &mut StringLiteral,
_from: &mut ImportPath,
) -> Result<(), Self::Error> {
Ok(())
}
Expand Down

0 comments on commit ae3ec74

Please sign in to comment.