Skip to content

Commit a798fad

Browse files
committed
Reorder semantic passes
Compute linearisations before resolving references
1 parent 4a41621 commit a798fad

10 files changed

Lines changed: 12 additions & 12 deletions

File tree

crates/solidity-v2/outputs/cargo/semantic/src/context/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ use slang_solidity_v2_ir::ir;
1010

1111
use crate::binder::{Binder, Definition, Reference};
1212
use crate::passes::{
13-
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p4_resolve_references,
14-
p5_compute_linearisations,
13+
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p4_compute_linearisations,
14+
p5_resolve_references,
1515
};
1616
use crate::types::{
1717
ArrayType, ByteArrayType, ContractType, EnumType, FixedPointNumberType, FixedSizeArrayType,
@@ -77,8 +77,8 @@ impl SemanticContext {
7777
p1_collect_definitions::run(files, &mut binder, diagnostics);
7878
p2_linearise_contracts::run(files, &mut binder, diagnostics);
7979
p3_type_definitions::run(files, &mut binder, &mut types, language_version);
80-
p4_resolve_references::run(files, &mut binder, &mut types, language_version);
81-
let contract_data = p5_compute_linearisations::run(&binder, &types);
80+
let contract_data = p4_compute_linearisations::run(&binder, &types);
81+
p5_resolve_references::run(files, &mut binder, &mut types, language_version);
8282

8383
let file_node_mapper = FileNodeMapper::build_from(files);
8484

crates/solidity-v2/outputs/cargo/semantic/src/passes/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ mod common;
22
pub(crate) mod p1_collect_definitions;
33
pub(crate) mod p2_linearise_contracts;
44
pub(crate) mod p3_type_definitions;
5-
pub(crate) mod p4_resolve_references;
6-
pub(crate) mod p5_compute_linearisations;
5+
pub(crate) mod p4_compute_linearisations;
6+
pub(crate) mod p5_resolve_references;
77

88
#[cfg(test)]
99
mod tests;

crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_compute_linearisations/mod.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_compute_linearisations/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn compute_linearised_members(
3737
types: &TypeRegistry,
3838
contract_id: NodeId,
3939
) -> ContractLinearisations {
40-
let functions = compute_linearised_functions(binder, types, contract_id);
40+
let functions = collect_linearised_functions(binder, types, contract_id);
4141
let state_variables = collect_linearised_state_variables(binder, contract_id);
4242
let errors = collect_linearised_errors(binder, contract_id);
4343
let events = collect_linearised_events(binder, contract_id);
@@ -52,7 +52,7 @@ fn compute_linearised_members(
5252
}
5353
}
5454

55-
fn compute_linearised_functions(
55+
fn collect_linearised_functions(
5656
binder: &Binder,
5757
types: &TypeRegistry,
5858
contract_id: NodeId,

crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_resolve_references/disambiguation.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_resolve_references/disambiguation.rs

File renamed without changes.

crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_resolve_references/mod.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_resolve_references/mod.rs

File renamed without changes.

crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_resolve_references/resolution.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_resolve_references/resolution.rs

File renamed without changes.

crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_resolve_references/typing.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_resolve_references/typing.rs

File renamed without changes.

crates/solidity-v2/outputs/cargo/semantic/src/passes/p4_resolve_references/visitor.rs renamed to crates/solidity-v2/outputs/cargo/semantic/src/passes/p5_resolve_references/visitor.rs

File renamed without changes.

crates/solidity-v2/outputs/cargo/semantic/src/passes/tests/binder.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use slang_solidity_v2_ir::ir::NodeIdGenerator;
99
use super::build_file;
1010
use crate::binder::{Binder, Resolution};
1111
use crate::passes::{
12-
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p4_resolve_references,
12+
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p5_resolve_references,
1313
};
1414
use crate::types::TypeRegistry;
1515

@@ -278,7 +278,7 @@ contract Test is Base {
278278
"Semantic diagnostics: {diagnostics:?}"
279279
);
280280
p3_type_definitions::run(&files, &mut binder, &mut types, language_version);
281-
p4_resolve_references::run(&files, &mut binder, &mut types, language_version);
281+
p5_resolve_references::run(&files, &mut binder, &mut types, language_version);
282282

283283
// Verify that references were created and most are resolved
284284
let references = binder.references();

crates/solidity-v2/outputs/cargo/semantic/src/passes/tests/typing.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::binder::Binder;
99
use crate::context::SemanticFile;
1010
use crate::passes::common::node_id_for_expression_typing;
1111
use crate::passes::{
12-
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p4_resolve_references,
12+
p1_collect_definitions, p2_linearise_contracts, p3_type_definitions, p5_resolve_references,
1313
};
1414
use crate::types::{
1515
ByteArrayType, BytesType, ContractType, DataLocation, FixedSizeArrayType, IntegerType,
@@ -38,7 +38,7 @@ fn analyze(language_version: LanguageVersion, source: &str) -> TypeAnalysis {
3838
"Semantic diagnostics: {diagnostics:?}"
3939
);
4040
p3_type_definitions::run(&files, &mut binder, &mut types, language_version);
41-
p4_resolve_references::run(&files, &mut binder, &mut types, language_version);
41+
p5_resolve_references::run(&files, &mut binder, &mut types, language_version);
4242

4343
TypeAnalysis {
4444
file: files.into_iter().next().unwrap(),

0 commit comments

Comments
 (0)