From 3a1c7cb065d91e47a3788a6d34ff842c78d05b55 Mon Sep 17 00:00:00 2001 From: Yordan Miladinov Date: Mon, 6 Mar 2023 05:16:58 +0200 Subject: [PATCH 01/91] incorrect-equality: do not check addresses --- .../statements/incorrect_strict_equality.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/slither/detectors/statements/incorrect_strict_equality.py b/slither/detectors/statements/incorrect_strict_equality.py index bc7b0cebe3..bd34d61b1a 100644 --- a/slither/detectors/statements/incorrect_strict_equality.py +++ b/slither/detectors/statements/incorrect_strict_equality.py @@ -72,6 +72,14 @@ class IncorrectStrictEquality(AbstractDetector): def is_direct_comparison(ir: Operation) -> bool: return isinstance(ir, Binary) and ir.type == BinaryType.EQUAL + @staticmethod + def is_not_comparing_addresses(ir: Binary) -> bool: + """ + Comparing addresses strictly should not be flagged. + """ + addr = ElementaryType("address") + return ir.variable_left.type != addr or ir.variable_right.type != addr + @staticmethod def is_any_tainted( variables: List[ @@ -145,7 +153,12 @@ def tainted_equality_nodes( for ir in node.irs_ssa: # Filter to only tainted equality (==) comparisons - if self.is_direct_comparison(ir) and self.is_any_tainted(ir.used, taints, func): + if ( + self.is_direct_comparison(ir) + and self.is_not_comparing_addresses(ir) + and self.is_any_tainted(ir.used, taints, func) + ): + # if func not in results: results[func] = [] results[func].append(node) From 3cdb23c584f48582593f2ccd22491579fc190729 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 16 Mar 2023 21:42:26 -0500 Subject: [PATCH 02/91] upgrade-prettytable, use colored table --- setup.py | 2 +- slither/utils/myprettytable.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 0d26167b35..ccab5a21a1 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ python_requires=">=3.8", install_requires=[ "packaging", - "prettytable>=0.7.2", + "prettytable>=3.3.0", "pycryptodome>=3.4.6", # "crytic-compile>=0.3.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@master#egg=crytic-compile", diff --git a/slither/utils/myprettytable.py b/slither/utils/myprettytable.py index a1dfd7ac01..60eed182ea 100644 --- a/slither/utils/myprettytable.py +++ b/slither/utils/myprettytable.py @@ -1,6 +1,6 @@ from typing import List, Dict -from prettytable import PrettyTable +from prettytable.colortable import ColorTable, Themes class MyPrettyTable: @@ -11,8 +11,8 @@ def __init__(self, field_names: List[str]): def add_row(self, row: List[str]) -> None: self._rows.append(row) - def to_pretty_table(self) -> PrettyTable: - table = PrettyTable(self._field_names) + def to_pretty_table(self) -> ColorTable: + table = ColorTable(self._field_names, theme=Themes.OCEAN) for row in self._rows: table.add_row(row) return table From 0ff95eb876ba797d2bbdb9492da5aa1713bca1db Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 17 Mar 2023 08:34:29 -0500 Subject: [PATCH 03/91] add tx.gasprice to generic taints --- slither/analyses/data_dependency/data_dependency.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/analyses/data_dependency/data_dependency.py b/slither/analyses/data_dependency/data_dependency.py index b2a1546729..7750fc99ae 100644 --- a/slither/analyses/data_dependency/data_dependency.py +++ b/slither/analyses/data_dependency/data_dependency.py @@ -107,6 +107,7 @@ def is_dependent_ssa( SolidityVariableComposed("msg.value"), SolidityVariableComposed("msg.data"), SolidityVariableComposed("tx.origin"), + SolidityVariableComposed("tx.gasprice"), } From 6a3ae82b56592769fa426fc8d264292f7bf16c91 Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:50:18 -0500 Subject: [PATCH 04/91] Add option to skip unrolling user-defined-types --- slither/utils/code_generation.py | 48 +++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 951bf4702c..ae03e20905 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -2,12 +2,14 @@ from typing import TYPE_CHECKING, Optional from slither.utils.type import convert_type_for_solidity_signature_to_string +from slither.core.solidity_types.user_defined_type import UserDefinedType +from slither.core.declarations import Structure, Enum if TYPE_CHECKING: - from slither.core.declarations import FunctionContract, Structure, Contract + from slither.core.declarations import FunctionContract, Contract, CustomErrorContract -def generate_interface(contract: "Contract") -> str: +def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: """ Generates code for a Solidity interface to the contract. Args: @@ -22,13 +24,7 @@ def generate_interface(contract: "Contract") -> str: name, args = event.signature interface += f" event {name}({', '.join(args)});\n" for error in contract.custom_errors: - args = [ - convert_type_for_solidity_signature_to_string(arg.type) - .replace("(", "") - .replace(")", "") - for arg in error.parameters - ] - interface += f" error {error.name}({', '.join(args)});\n" + interface += generate_custom_error_interface(error, unroll_structs) for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" for struct in contract.structures: @@ -38,12 +34,16 @@ def generate_interface(contract: "Contract") -> str: for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue - interface += f" function {generate_interface_function_signature(func)};\n" + interface += ( + f" function {generate_interface_function_signature(func, unroll_structs)};\n" + ) interface += "}\n\n" return interface -def generate_interface_function_signature(func: "FunctionContract") -> Optional[str]: +def generate_interface_function_signature( + func: "FunctionContract", unroll_structs: bool = True +) -> Optional[str]: """ Generates a string of the form: func_name(type1,type2) external {payable/view/pure} returns (type3) @@ -56,7 +56,7 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ Returns None if the function is private or internal, or is a constructor/fallback/receive. """ - name, parameters, return_vars = func.signature + name, _, _ = func.signature if ( func not in func.contract.functions_entry_points or func.is_constructor @@ -69,16 +69,24 @@ def generate_interface_function_signature(func: "FunctionContract") -> Optional[ payable = " payable" if func.payable else "" returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") + if unroll_structs + else f"{str(ret.type.type)} memory" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) + else str(ret.type) for ret in func.returns ] parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") + if unroll_structs + else f"{str(param.type.type)} memory" + if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + else str(param.type) for param in func.parameters ] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) - if len(return_vars) > 0: + if len(returns) > 0: _interface_signature_str += " returns (" + ",".join(returns) + ")" return _interface_signature_str @@ -102,3 +110,17 @@ def generate_struct_interface_str(struct: "Structure") -> str: definition += f" {elem.type} {elem.name};\n" definition += " }\n" return definition + + +def generate_custom_error_interface(error: "CustomErrorContract", unroll_structs: bool = True) -> str: + args = [ + convert_type_for_solidity_signature_to_string(arg.type) + .replace("(", "") + .replace(")", "") + if unroll_structs + else str(arg.type.type) + if isinstance(arg.type, UserDefinedType) and isinstance(arg.type.type, (Structure, Enum)) + else str(arg.type) + for arg in error.parameters + ] + return f" error {error.name}({', '.join(args)});\n" From b5cd4642e0a55fc06e1f4535d0512f2d8812b27a Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:50:45 -0500 Subject: [PATCH 05/91] Test option to skip unrolling user-defined-types --- .../TEST_generated_code_not_unrolled.sol | 24 +++++++++++++++++++ tests/test_code_generation.py | 8 +++++++ 2 files changed, 32 insertions(+) create mode 100644 tests/code_generation/TEST_generated_code_not_unrolled.sol diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol new file mode 100644 index 0000000000..9595252595 --- /dev/null +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -0,0 +1,24 @@ +interface ITestContract { + event NoParams(); + event Anonymous(); + event OneParam(address); + event OneParamIndexed(address); + error ErrorWithEnum(SomeEnum); + error ErrorSimple(); + error ErrorWithArgs(uint256, uint256); + error ErrorWithStruct(St); + enum SomeEnum { ONE, TWO, THREE } + struct St { + uint256 v; + } + function stateA() external returns (uint256); + function owner() external returns (address); + function structs(address,uint256) external returns (uint256); + function err0() external; + function err1() external; + function err2(uint256,uint256) external; + function newSt(uint256) external returns (St memory); + function getSt(uint256) external view returns (St memory); + function removeSt(St memory) external; +} + diff --git a/tests/test_code_generation.py b/tests/test_code_generation.py index 13d1c8fb0f..d69a7836d2 100644 --- a/tests/test_code_generation.py +++ b/tests/test_code_generation.py @@ -23,3 +23,11 @@ def test_interface_generation() -> None: expected = file.read() assert actual == expected + + actual = generate_interface(sl.get_contract_from_name("TestContract")[0], unroll_structs=False) + expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code_not_unrolled.sol") + + with open(expected_path, "r", encoding="utf-8") as file: + expected = file.read() + + assert actual == expected From c3f42c62e66fa6682c0b1985d6226e47e540eac8 Mon Sep 17 00:00:00 2001 From: webthethird Date: Sat, 25 Mar 2023 17:54:53 -0500 Subject: [PATCH 06/91] Black --- slither/utils/code_generation.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index ae03e20905..f0c433ac30 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -79,7 +79,8 @@ def generate_interface_function_signature( convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs else f"{str(param.type.type)} memory" - if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + if isinstance(param.type, UserDefinedType) + and isinstance(param.type.type, (Structure, Enum)) else str(param.type) for param in func.parameters ] @@ -112,11 +113,11 @@ def generate_struct_interface_str(struct: "Structure") -> str: return definition -def generate_custom_error_interface(error: "CustomErrorContract", unroll_structs: bool = True) -> str: +def generate_custom_error_interface( + error: "CustomErrorContract", unroll_structs: bool = True +) -> str: args = [ - convert_type_for_solidity_signature_to_string(arg.type) - .replace("(", "") - .replace(")", "") + convert_type_for_solidity_signature_to_string(arg.type).replace("(", "").replace(")", "") if unroll_structs else str(arg.type.type) if isinstance(arg.type, UserDefinedType) and isinstance(arg.type.type, (Structure, Enum)) From 36e1ac1e011aab8fa22b47e6de5ff4d728f647a6 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 10:37:36 -0500 Subject: [PATCH 07/91] Better handling of state variable signatures especially contract-type variables and functions that return them --- slither/utils/code_generation.py | 51 ++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f0c433ac30..fc7578040e 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,19 +1,25 @@ # Functions for generating Solidity code from typing import TYPE_CHECKING, Optional -from slither.utils.type import convert_type_for_solidity_signature_to_string -from slither.core.solidity_types.user_defined_type import UserDefinedType -from slither.core.declarations import Structure, Enum +from slither.utils.type import ( + convert_type_for_solidity_signature_to_string, + export_nested_types_from_variable, + export_return_type_from_variable, +) +from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType +from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: - from slither.core.declarations import FunctionContract, Contract, CustomErrorContract + from slither.core.declarations import FunctionContract, CustomErrorContract + from slither.core.variables import StateVariable def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: """ Generates code for a Solidity interface to the contract. Args: - contract: A Contract object + contract: A Contract object. + unroll_structs: Specifies whether to use structures' underlying types instead of the user-defined type. Returns: A string with the code for an interface, with function stubs for all public or external functions and @@ -30,7 +36,7 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str for struct in contract.structures: interface += generate_struct_interface_str(struct) for var in contract.state_variables_entry_points: - interface += f" function {var.signature_str.replace('returns', 'external returns ')};\n" + interface += generate_interface_variable_signature(var, unroll_structs) for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue @@ -41,6 +47,35 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str return interface +def generate_interface_variable_signature( + var: "StateVariable", unroll_structs: bool = True +) -> Optional[str]: + if unroll_structs: + params = [ + convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") + for x in export_nested_types_from_variable(var) + ] + returns = [ + convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") + for x in export_return_type_from_variable(var) + ] + else: + _, params, _ = var.signature + returns = [] + _type = var.type + while isinstance(_type, MappingType): + _type = _type.type_to + while isinstance(_type, (ArrayType, UserDefinedType)): + _type = _type.type + ret = str(_type) + if isinstance(_type, Structure): + ret += " memory" + elif isinstance(_type, Contract): + ret = "address" + returns.append(ret) + return f" function {var.name}({','.join(params)}) external returns ({', '.join(returns)});\n" + + def generate_interface_function_signature( func: "FunctionContract", unroll_structs: bool = True ) -> Optional[str]: @@ -72,6 +107,8 @@ def generate_interface_function_signature( if unroll_structs else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) + else "address" + if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) else str(ret.type) for ret in func.returns ] @@ -81,6 +118,8 @@ def generate_interface_function_signature( else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) + else "address" + if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) else str(param.type) for param in func.parameters ] From 380301b08da55fdd23efb7838be4f5e108acbcdc Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 10:38:57 -0500 Subject: [PATCH 08/91] More robust testing including ArrayType vars and user-defined contract types --- tests/code_generation/CodeGeneration.sol | 13 +++++++++---- tests/code_generation/TEST_generated_code.sol | 5 ++++- .../TEST_generated_code_not_unrolled.sol | 5 ++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/tests/code_generation/CodeGeneration.sol b/tests/code_generation/CodeGeneration.sol index c15017abd5..749e23f32e 100644 --- a/tests/code_generation/CodeGeneration.sol +++ b/tests/code_generation/CodeGeneration.sol @@ -8,7 +8,9 @@ contract TestContract is I { uint public stateA; uint private stateB; address public immutable owner = msg.sender; - mapping(address => mapping(uint => St)) public structs; + mapping(address => mapping(uint => St)) public structsMap; + St[] public structsArray; + I public otherI; event NoParams(); event Anonymous() anonymous; @@ -44,13 +46,16 @@ contract TestContract is I { function newSt(uint x) public returns (St memory) { St memory st; st.v = x; - structs[msg.sender][x] = st; + structsMap[msg.sender][x] = st; return st; } function getSt(uint x) public view returns (St memory) { - return structs[msg.sender][x]; + return structsMap[msg.sender][x]; } function removeSt(St memory st) public { - delete structs[msg.sender][st.v]; + delete structsMap[msg.sender][st.v]; + } + function setOtherI(I _i) public { + otherI = _i; } } \ No newline at end of file diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/code_generation/TEST_generated_code.sol index 62e08bd74c..cbddea2efc 100644 --- a/tests/code_generation/TEST_generated_code.sol +++ b/tests/code_generation/TEST_generated_code.sol @@ -13,12 +13,15 @@ interface ITestContract { } function stateA() external returns (uint256); function owner() external returns (address); - function structs(address,uint256) external returns (uint256); + function structsMap(address,uint256) external returns (uint256); + function structsArray(uint256) external returns (uint256); + function otherI() external returns (address); function err0() external; function err1() external; function err2(uint256,uint256) external; function newSt(uint256) external returns (uint256); function getSt(uint256) external view returns (uint256); function removeSt(uint256) external; + function setOtherI(address) external; } diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol index 9595252595..b8e8c5d046 100644 --- a/tests/code_generation/TEST_generated_code_not_unrolled.sol +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -13,12 +13,15 @@ interface ITestContract { } function stateA() external returns (uint256); function owner() external returns (address); - function structs(address,uint256) external returns (uint256); + function structsMap(address,uint256) external returns (St memory); + function structsArray(uint256) external returns (St memory); + function otherI() external returns (address); function err0() external; function err1() external; function err2(uint256,uint256) external; function newSt(uint256) external returns (St memory); function getSt(uint256) external view returns (St memory); function removeSt(St memory) external; + function setOtherI(address) external; } From 45aca8be103b1f57866692c9d3e04ac0a7a217cc Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:19:34 -0500 Subject: [PATCH 09/91] Handle nested Structures --- slither/utils/code_generation.py | 8 +++++++- tests/code_generation/CodeGeneration.sol | 4 ++++ tests/code_generation/TEST_generated_code.sol | 3 +++ .../code_generation/TEST_generated_code_not_unrolled.sol | 3 +++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index fc7578040e..11459d05d9 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -147,7 +147,13 @@ def generate_struct_interface_str(struct: "Structure") -> str: """ definition = f" struct {struct.name} {{\n" for elem in struct.elems_ordered: - definition += f" {elem.type} {elem.name};\n" + if isinstance(elem.type, UserDefinedType): + if isinstance(elem.type.type, (Structure, Enum)): + definition += f" {elem.type.type} {elem.name};\n" + elif isinstance(elem.type.type, Contract): + definition += f" address {elem.name};\n" + else: + definition += f" {elem.type} {elem.name};\n" definition += " }\n" return definition diff --git a/tests/code_generation/CodeGeneration.sol b/tests/code_generation/CodeGeneration.sol index 749e23f32e..6f1f63c72f 100644 --- a/tests/code_generation/CodeGeneration.sol +++ b/tests/code_generation/CodeGeneration.sol @@ -25,6 +25,10 @@ contract TestContract is I { uint v; } + struct Nested{ + St st; + } + function err0() public { revert ErrorSimple(); } diff --git a/tests/code_generation/TEST_generated_code.sol b/tests/code_generation/TEST_generated_code.sol index cbddea2efc..373fba9ca2 100644 --- a/tests/code_generation/TEST_generated_code.sol +++ b/tests/code_generation/TEST_generated_code.sol @@ -11,6 +11,9 @@ interface ITestContract { struct St { uint256 v; } + struct Nested { + St st; + } function stateA() external returns (uint256); function owner() external returns (address); function structsMap(address,uint256) external returns (uint256); diff --git a/tests/code_generation/TEST_generated_code_not_unrolled.sol b/tests/code_generation/TEST_generated_code_not_unrolled.sol index b8e8c5d046..0cc4dc0404 100644 --- a/tests/code_generation/TEST_generated_code_not_unrolled.sol +++ b/tests/code_generation/TEST_generated_code_not_unrolled.sol @@ -11,6 +11,9 @@ interface ITestContract { struct St { uint256 v; } + struct Nested { + St st; + } function stateA() external returns (uint256); function owner() external returns (address); function structsMap(address,uint256) external returns (St memory); From 552a24d8579a0efe4ee0bf5e3f490875ac49db75 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:25:18 -0500 Subject: [PATCH 10/91] Make events, errors, enums and structs optional but include all by default --- slither/utils/code_generation.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 11459d05d9..718410fb7f 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -14,7 +14,14 @@ from slither.core.variables import StateVariable -def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str: +def generate_interface( + contract: "Contract", + unroll_structs: bool = True, + skip_events: bool = False, + skip_errors: bool = False, + skip_enums: bool = False, + skip_structs: bool = False +) -> str: """ Generates code for a Solidity interface to the contract. Args: @@ -26,15 +33,19 @@ def generate_interface(contract: "Contract", unroll_structs: bool = True) -> str state variables, as well as any events, custom errors and/or structs declared in the contract. """ interface = f"interface I{contract.name} {{\n" - for event in contract.events: - name, args = event.signature - interface += f" event {name}({', '.join(args)});\n" - for error in contract.custom_errors: - interface += generate_custom_error_interface(error, unroll_structs) - for enum in contract.enums: - interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" - for struct in contract.structures: - interface += generate_struct_interface_str(struct) + if not skip_events: + for event in contract.events: + name, args = event.signature + interface += f" event {name}({', '.join(args)});\n" + if not skip_errors: + for error in contract.custom_errors: + interface += generate_custom_error_interface(error, unroll_structs) + if not skip_enums: + for enum in contract.enums: + interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" + if not skip_structs: + for struct in contract.structures: + interface += generate_struct_interface_str(struct) for var in contract.state_variables_entry_points: interface += generate_interface_variable_signature(var, unroll_structs) for func in contract.functions_entry_points: From f61c59ae6c1de66b91131fc035e57a32e5bbc069 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 11:43:16 -0500 Subject: [PATCH 11/91] Handle arrays of user-defined types in params/returns --- slither/utils/code_generation.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 718410fb7f..e7647bfcc3 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -15,12 +15,12 @@ def generate_interface( - contract: "Contract", - unroll_structs: bool = True, - skip_events: bool = False, - skip_errors: bool = False, - skip_enums: bool = False, - skip_structs: bool = False + contract: "Contract", + unroll_structs: bool = True, + skip_events: bool = False, + skip_errors: bool = False, + skip_enums: bool = False, + skip_structs: bool = False, ) -> str: """ Generates code for a Solidity interface to the contract. @@ -116,6 +116,7 @@ def generate_interface_function_signature( returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") if unroll_structs + or (isinstance(ret.type, ArrayType) and isinstance(ret.type.type, UserDefinedType)) else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" @@ -126,6 +127,7 @@ def generate_interface_function_signature( parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs + or (isinstance(param.type, ArrayType) and isinstance(param.type.type, UserDefinedType)) else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) From 0cac8ccb07b99ef897555a655babd5c9be695668 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 12:20:32 -0500 Subject: [PATCH 12/91] Handle array's data location in params/returns --- slither/utils/code_generation.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index e7647bfcc3..f1099a66ab 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,7 @@ export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType +from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType, ElementaryType from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: @@ -14,6 +14,7 @@ from slither.core.variables import StateVariable +# pylint: disable=too-many-arguments def generate_interface( contract: "Contract", unroll_structs: bool = True, @@ -116,7 +117,12 @@ def generate_interface_function_signature( returns = [ convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") if unroll_structs - or (isinstance(ret.type, ArrayType) and isinstance(ret.type.type, UserDefinedType)) + else convert_type_for_solidity_signature_to_string(ret.type) + .replace("(", "") + .replace(")", "") + + f" {ret.location}" + if isinstance(ret.type, ArrayType) + and isinstance(ret.type.type, (UserDefinedType, ElementaryType)) else f"{str(ret.type.type)} memory" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" @@ -127,7 +133,12 @@ def generate_interface_function_signature( parameters = [ convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") if unroll_structs - or (isinstance(param.type, ArrayType) and isinstance(param.type.type, UserDefinedType)) + else convert_type_for_solidity_signature_to_string(param.type) + .replace("(", "") + .replace(")", "") + + f" {param.location}" + if isinstance(param.type, ArrayType) + and isinstance(param.type.type, (UserDefinedType, ElementaryType)) else f"{str(param.type.type)} memory" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, (Structure, Enum)) From 216ccdc9594d85114e592868d4b004b13bc2fa21 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 27 Mar 2023 13:31:06 -0500 Subject: [PATCH 13/91] Refactor to avoid assumptions re: indentation, semicolon and new line --- slither/utils/code_generation.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f1099a66ab..34c489b74c 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -40,15 +40,15 @@ def generate_interface( interface += f" event {name}({', '.join(args)});\n" if not skip_errors: for error in contract.custom_errors: - interface += generate_custom_error_interface(error, unroll_structs) + interface += f" error {generate_custom_error_interface(error, unroll_structs)};\n" if not skip_enums: for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" if not skip_structs: for struct in contract.structures: - interface += generate_struct_interface_str(struct) + interface += generate_struct_interface_str(struct, indent=4) for var in contract.state_variables_entry_points: - interface += generate_interface_variable_signature(var, unroll_structs) + interface += f" function {generate_interface_variable_signature(var, unroll_structs)};\n" for func in contract.functions_entry_points: if func.is_constructor or func.is_fallback or func.is_receive: continue @@ -85,7 +85,7 @@ def generate_interface_variable_signature( elif isinstance(_type, Contract): ret = "address" returns.append(ret) - return f" function {var.name}({','.join(params)}) external returns ({', '.join(returns)});\n" + return f"{var.name}({','.join(params)}) external returns ({', '.join(returns)})" def generate_interface_function_signature( @@ -155,7 +155,7 @@ def generate_interface_function_signature( return _interface_signature_str -def generate_struct_interface_str(struct: "Structure") -> str: +def generate_struct_interface_str(struct: "Structure", indent: int = 0) -> str: """ Generates code for a structure declaration in an interface of the form: struct struct_name { @@ -164,21 +164,25 @@ def generate_struct_interface_str(struct: "Structure") -> str: ... ... } Args: - struct: A Structure object + struct: A Structure object. + indent: Number of spaces to indent the code block with. Returns: The structure declaration code as a string. """ - definition = f" struct {struct.name} {{\n" + spaces = "" + for _ in range(0, indent): + spaces += " " + definition = f"{spaces}struct {struct.name} {{\n" for elem in struct.elems_ordered: if isinstance(elem.type, UserDefinedType): if isinstance(elem.type.type, (Structure, Enum)): - definition += f" {elem.type.type} {elem.name};\n" + definition += f"{spaces} {elem.type.type} {elem.name};\n" elif isinstance(elem.type.type, Contract): - definition += f" address {elem.name};\n" + definition += f"{spaces} address {elem.name};\n" else: - definition += f" {elem.type} {elem.name};\n" - definition += " }\n" + definition += f"{spaces} {elem.type} {elem.name};\n" + definition += f"{spaces}\n" return definition @@ -193,4 +197,4 @@ def generate_custom_error_interface( else str(arg.type) for arg in error.parameters ] - return f" error {error.name}({', '.join(args)});\n" + return f"{error.name}({', '.join(args)})" From 40239751c264ea850335b9789e7fbe23b42e47b3 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 28 Mar 2023 12:23:45 -0500 Subject: [PATCH 14/91] Fix handling of dynamic `string` and `bytes` --- slither/utils/code_generation.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 34c489b74c..cd72e6c8fe 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,7 @@ export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import UserDefinedType, MappingType, ArrayType, ElementaryType +from slither.core.solidity_types import Type, UserDefinedType, MappingType, ArrayType, ElementaryType from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: @@ -73,6 +73,7 @@ def generate_interface_variable_signature( ] else: _, params, _ = var.signature + params = [p + " memory" if p in ["bytes", "string"] else p for p in params] returns = [] _type = var.type while isinstance(_type, MappingType): @@ -80,7 +81,7 @@ def generate_interface_variable_signature( while isinstance(_type, (ArrayType, UserDefinedType)): _type = _type.type ret = str(_type) - if isinstance(_type, Structure): + if isinstance(_type, Structure) or (isinstance(_type, Type) and _type.is_dynamic): ret += " memory" elif isinstance(_type, Contract): ret = "address" @@ -127,6 +128,8 @@ def generate_interface_function_signature( if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) else "address" if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) + else f"{ret.type} {ret.location}" + if ret.type.is_dynamic else str(ret.type) for ret in func.returns ] @@ -144,6 +147,8 @@ def generate_interface_function_signature( and isinstance(param.type.type, (Structure, Enum)) else "address" if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) + else f"{param.type} {param.location}" + if param.type.is_dynamic else str(param.type) for param in func.parameters ] @@ -182,7 +187,7 @@ def generate_struct_interface_str(struct: "Structure", indent: int = 0) -> str: definition += f"{spaces} address {elem.name};\n" else: definition += f"{spaces} {elem.type} {elem.name};\n" - definition += f"{spaces}\n" + definition += f"{spaces}}}\n" return definition From 111559bf750ce58d307806e36fbebb671ad7c973 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 4 Apr 2023 13:15:20 -0500 Subject: [PATCH 15/91] Black --- slither/utils/code_generation.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index cd72e6c8fe..c22a725260 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -6,7 +6,13 @@ export_nested_types_from_variable, export_return_type_from_variable, ) -from slither.core.solidity_types import Type, UserDefinedType, MappingType, ArrayType, ElementaryType +from slither.core.solidity_types import ( + Type, + UserDefinedType, + MappingType, + ArrayType, + ElementaryType, +) from slither.core.declarations import Structure, Enum, Contract if TYPE_CHECKING: From ea10acad827b7a80085edd1c3020e66fa464ff17 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 10 Apr 2023 11:49:02 -0500 Subject: [PATCH 16/91] Fix missing import --- tests/unit/utils/test_code_generation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index 99f8689a44..ee70fee871 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -1,3 +1,4 @@ +import os from pathlib import Path from solc_select import solc_select From 89fda0667e57bc541e99644ddf1733052ee66801 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 10 Apr 2023 11:49:51 -0500 Subject: [PATCH 17/91] Pylint --- tests/unit/utils/test_code_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/utils/test_code_generation.py b/tests/unit/utils/test_code_generation.py index ee70fee871..3684b10b46 100644 --- a/tests/unit/utils/test_code_generation.py +++ b/tests/unit/utils/test_code_generation.py @@ -24,7 +24,7 @@ def test_interface_generation() -> None: assert actual == expected actual = generate_interface(sl.get_contract_from_name("TestContract")[0], unroll_structs=False) - expected_path = os.path.join(CODE_TEST_ROOT, "TEST_generated_code_not_unrolled.sol") + expected_path = os.path.join(TEST_DATA_DIR, "TEST_generated_code_not_unrolled.sol") with open(expected_path, "r", encoding="utf-8") as file: expected = file.read() From 97307cd1f0ea9157d15a6b9bb9044420cca55e94 Mon Sep 17 00:00:00 2001 From: webthethird Date: Mon, 17 Apr 2023 14:39:14 -0500 Subject: [PATCH 18/91] Only include 'view' in func sig if not 'pure' --- slither/utils/code_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index c22a725260..b2da93764e 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -118,7 +118,7 @@ def generate_interface_function_signature( or func.is_receive ): return None - view = " view" if func.view else "" + view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" returns = [ From 3cba507cd8e49edd023ebe0c63d42f867f8402bb Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 17 Apr 2023 15:02:35 -0500 Subject: [PATCH 19/91] add detector for uses of encode packed that may allow for duplicates encodings --- slither/detectors/all_detectors.py | 1 + slither/detectors/operations/encode_packed.py | 104 ++++++++++++++++++ ...n_0_7_6_encode_packed_collision_sol__0.txt | 15 +++ .../0.7.6/encode_packed_collision.sol | 78 +++++++++++++ .../encode_packed_collision.sol-0.7.6.zip | Bin 0 -> 6125 bytes tests/e2e/detectors/test_detectors.py | 5 + 6 files changed, 203 insertions(+) create mode 100644 slither/detectors/operations/encode_packed.py create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt create mode 100644 tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol create mode 100644 tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 9722b87937..1a41210839 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,3 +89,4 @@ from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity +from .operations.encode_packed import EncodePackedCollision diff --git a/slither/detectors/operations/encode_packed.py b/slither/detectors/operations/encode_packed.py new file mode 100644 index 0000000000..ea7b094df2 --- /dev/null +++ b/slither/detectors/operations/encode_packed.py @@ -0,0 +1,104 @@ +""" +Module detecting usage of more than one dynamic type in abi.encodePacked() arguments which could lead to collision +""" + +from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.core.declarations.solidity_variables import SolidityFunction +from slither.slithir.operations import SolidityCall +from slither.analyses.data_dependency.data_dependency import is_tainted +from slither.core.solidity_types import ElementaryType +from slither.core.solidity_types import ArrayType + + +def _is_dynamic_type(arg): + """ + Args: + arg (function argument) + Returns: + Bool + """ + if isinstance(arg.type, ElementaryType) and (arg.type.name in ["string", "bytes"]): + return True + if isinstance(arg.type, ArrayType) and arg.type.length is None: + return True + + return False + + +def _detect_abi_encodePacked_collision(contract): + """ + Args: + contract (Contract) + Returns: + list((Function), (list (Node))) + """ + ret = [] + # pylint: disable=too-many-nested-blocks + for f in contract.functions_and_modifiers_declared: + for n in f.nodes: + for ir in n.irs: + if isinstance(ir, SolidityCall) and ir.function == SolidityFunction( + "abi.encodePacked()" + ): + dynamic_type_count = 0 + for arg in ir.arguments: + if is_tainted(arg, contract) and _is_dynamic_type(arg): + dynamic_type_count += 1 + elif dynamic_type_count > 1: + ret.append((f, n)) + dynamic_type_count = 0 + else: + dynamic_type_count = 0 + if dynamic_type_count > 1: + ret.append((f, n)) + return ret + + +class EncodePackedCollision(AbstractDetector): + """ + Detect usage of more than one dynamic type in abi.encodePacked() arguments which could to collision + """ + + ARGUMENT = "encode-packed-collision" + HELP = "ABI encodePacked Collision" + IMPACT = DetectorClassification.HIGH + CONFIDENCE = DetectorClassification.HIGH + + WIKI = ( + "https://github.com/crytic/slither/wiki/Detector-Documentation#abi-encodePacked-collision" + ) + + WIKI_TITLE = "ABI encodePacked Collision" + WIKI_DESCRIPTION = """Detect collision due to dynamic type usages in `abi.encodePacked`""" + + WIKI_EXPLOIT_SCENARIO = """ +```solidity +contract Sign { + function get_hash_for_signature(string name, string doc) external returns(bytes32) { + return keccak256(abi.encodePacked(name, doc)); + } +} +``` +Bob calls `get_hash_for_signature` with (`bob`, `This is the content`). The hash returned is used as an ID. +Eve creates a collision with the ID using (`bo`, `bThis is the content`) and compromises the system. +""" + WIKI_RECOMMENDATION = """Do not use more than one dynamic type in `abi.encodePacked()` +(see the [Solidity documentation](https://solidity.readthedocs.io/en/v0.5.10/abi-spec.html?highlight=abi.encodePacked#non-standard-packed-modeDynamic)). +Use `abi.encode()`, preferably.""" + + def _detect(self): + """Detect usage of more than one dynamic type in abi.encodePacked(..) arguments which could lead to collision""" + results = [] + for c in self.compilation_unit.contracts: + values = _detect_abi_encodePacked_collision(c) + for func, node in values: + info = [ + func, + " calls abi.encodePacked() with multiple dynamic arguments:\n\t- ", + node, + "\n", + ] + json = self.generate_result(info) + results.append(json) + + return results diff --git a/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt new file mode 100644 index 0000000000..af7269fcf1 --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_EncodePackedCollision_0_7_6_encode_packed_collision_sol__0.txt @@ -0,0 +1,15 @@ +EncodePackedCollision.bad4(bytes,bytes) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#34-36) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(a,a2,a3,a) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#35) + +EncodePackedCollision.bad2(string,uint256[]) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#24-26) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,arra) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#25) + +EncodePackedCollision.bad3_get_hash_for_signature(string,string) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#29-31) calls abi.encodePacked() with multiple dynamic arguments: + - keccak256(bytes)(abi.encodePacked(name,doc)) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#30) + +EncodePackedCollision.bad0(string,string) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#14-16) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,strb) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#15) + +EncodePackedCollision.bad1(string,bytes) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#19-21) calls abi.encodePacked() with multiple dynamic arguments: + - packed = abi.encodePacked(stra,bytesa) (tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol#20) + diff --git a/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol new file mode 100644 index 0000000000..ab6648119e --- /dev/null +++ b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol @@ -0,0 +1,78 @@ +contract ABIencodePacked{ + + uint a; + string str1 = "a"; + string str2 = "bc"; + bytes _bytes = "hello world"; + uint[] arr; + uint[2] arr2; + string[3] str_arr3; /* This nested dynamic type is not supported in abi.encodePacked mode by solc */ + string[] str_array; /* This nested dynamic type is not supported in abi.encodePacked mode by solc */ + bytes[] bytes_array; /* This nested dynamic type and tuples are not supported in abi.encodePacked mode by solc */ + + /* Two dynamic types */ + function bad0(string calldata stra, string calldata strb) external{ + bytes memory packed = abi.encodePacked(stra, strb); + } + + /* Two dynamic types */ + function bad1(string calldata stra, bytes calldata bytesa) external{ + bytes memory packed = abi.encodePacked(stra, bytesa); + } + + /* Two dynamic types */ + function bad2(string calldata stra, uint[] calldata arra) external{ + bytes memory packed = abi.encodePacked(stra, arra); + } + + /* Two dynamic types */ + function bad3_get_hash_for_signature(string calldata name, string calldata doc) external returns (bytes32) { + return keccak256(abi.encodePacked(name, doc)); + } + + /* Two dynamic types between non dynamic types */ + function bad4(bytes calldata a2, bytes calldata a3) external { + bytes memory packed = abi.encodePacked(a, a2, a3, a); + } + + /* Two dynamic types but static values*/ + function good0() external{ + bytes memory packed = abi.encodePacked(str1, str2); + } + + /* Two dynamic types but static values*/ + function good1() external{ + bytes memory packed = abi.encodePacked(str1, _bytes); + } + + /* Two dynamic types but static values*/ + function good2() external{ + bytes memory packed = abi.encodePacked(str1, arr); + } + + /* No dynamic types */ + function good3() external{ + bytes memory packed = abi.encodePacked(a); + } + + /* One dynamic type */ + function good4() external{ + bytes memory packed = abi.encodePacked(str1); + } + + /* One dynamic type */ + function good5() external{ + bytes memory packed = abi.encodePacked(a, str1); + } + + /* One dynamic type */ + function good6() external{ + bytes memory packed = abi.encodePacked(str1, arr2); + } + + /* Two dynamic types but not consecutive*/ + function good7(string calldata a, uint b, string calldata c) external{ + bytes memory packed = abi.encodePacked(a, b, c); + } +} + diff --git a/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip b/tests/e2e/detectors/test_data/encode-packed-collision/0.7.6/encode_packed_collision.sol-0.7.6.zip new file mode 100644 index 0000000000000000000000000000000000000000..bddf0b7c54da68723a5e32ab06a27bfdfae68599 GIT binary patch literal 6125 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 Date: Tue, 18 Apr 2023 10:19:17 -0500 Subject: [PATCH 20/91] Change arguments from `skip_` to `include_`, and invert conditions. --- slither/utils/code_generation.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index b2da93764e..f7d0a8db61 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -24,33 +24,37 @@ def generate_interface( contract: "Contract", unroll_structs: bool = True, - skip_events: bool = False, - skip_errors: bool = False, - skip_enums: bool = False, - skip_structs: bool = False, + include_events: bool = True, + include_errors: bool = True, + include_enums: bool = True, + include_structs: bool = True, ) -> str: """ Generates code for a Solidity interface to the contract. Args: contract: A Contract object. - unroll_structs: Specifies whether to use structures' underlying types instead of the user-defined type. + unroll_structs: Whether to use structures' underlying types instead of the user-defined type (default: True). + include_events: Whether to include event signatures in the interface (default: True). + include_errors: Whether to include custom error signatures in the interface (default: True). + include_enums: Whether to include enum definitions in the interface (default: True). + include_structs: Whether to include struct definitions in the interface (default: True). Returns: A string with the code for an interface, with function stubs for all public or external functions and state variables, as well as any events, custom errors and/or structs declared in the contract. """ interface = f"interface I{contract.name} {{\n" - if not skip_events: + if include_events: for event in contract.events: name, args = event.signature interface += f" event {name}({', '.join(args)});\n" - if not skip_errors: + if include_errors: for error in contract.custom_errors: interface += f" error {generate_custom_error_interface(error, unroll_structs)};\n" - if not skip_enums: + if include_enums: for enum in contract.enums: interface += f" enum {enum.name} {{ {', '.join(enum.values)} }}\n" - if not skip_structs: + if include_structs: for struct in contract.structures: interface += generate_struct_interface_str(struct, indent=4) for var in contract.state_variables_entry_points: From 1bbf3f7cf888cb00ee22f0a260e307b4402800cc Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 18 Apr 2023 10:19:38 -0500 Subject: [PATCH 21/91] Check visibility in generate_interface_variable_signature --- slither/utils/code_generation.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index f7d0a8db61..1abc1c1d80 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -72,6 +72,8 @@ def generate_interface( def generate_interface_variable_signature( var: "StateVariable", unroll_structs: bool = True ) -> Optional[str]: + if var.visibility in ["private", "internal"]: + return None if unroll_structs: params = [ convert_type_for_solidity_signature_to_string(x).replace("(", "").replace(")", "") From 7167abd51e30050b369232de70fddd9be46d43f9 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 02:52:27 +0800 Subject: [PATCH 22/91] Bug Fix: Contract obj is_fully_implemented Previously was not updating the is_fully_implemented property due to incorrectly included in if statement. --- slither/solc_parsing/declarations/contract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index f3202d00cb..0f4aef11e8 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -170,8 +170,8 @@ def _parse_contract_info(self) -> None: elif attributes["contractKind"] == "library": self._contract.is_library = True self._contract.contract_kind = attributes["contractKind"] - self._contract.is_fully_implemented = attributes["fullyImplemented"] + self._contract.is_fully_implemented = attributes["fullyImplemented"] self._linearized_base_contracts = attributes["linearizedBaseContracts"] # self._contract.fullyImplemented = attributes["fullyImplemented"] From 4f87672be71c2a2ac95589479dc6c563a6a7d5f7 Mon Sep 17 00:00:00 2001 From: webthethird Date: Tue, 18 Apr 2023 17:14:40 -0500 Subject: [PATCH 23/91] Use inner function to clean up generate_interface_function_signature --- slither/utils/code_generation.py | 71 ++++++++++++++------------------ 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 1abc1c1d80..0699bb262e 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,5 +1,5 @@ # Functions for generating Solidity code -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Optional, List from slither.utils.type import ( convert_type_for_solidity_signature_to_string, @@ -17,7 +17,8 @@ if TYPE_CHECKING: from slither.core.declarations import FunctionContract, CustomErrorContract - from slither.core.variables import StateVariable + from slither.core.variables.state_variable import StateVariable + from slither.core.variables.local_variable import LocalVariable # pylint: disable=too-many-arguments @@ -110,12 +111,39 @@ def generate_interface_function_signature( Args: func: A FunctionContract object + unroll_structs: Determines whether structs are unrolled into underlying types (default: True) Returns: The function interface as a str (contains the return values). Returns None if the function is private or internal, or is a constructor/fallback/receive. """ + def format_params_or_returns(variables: List["LocalVariable"], unroll: bool) -> List[str]: + if unroll: + return [ + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + for var in variables + ] + return [ + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + + f" {var.location}" + if isinstance(var.type, ArrayType) + and isinstance(var.type.type, (UserDefinedType, ElementaryType)) + else f"{str(var.type.type)} memory" + if isinstance(var.type, UserDefinedType) + and isinstance(var.type.type, (Structure, Enum)) + else "address" + if isinstance(var.type, UserDefinedType) and isinstance(var.type.type, Contract) + else f"{var.type} {var.location}" + if var.type.is_dynamic + else str(var.type) + for var in variables + ] + name, _, _ = func.signature if ( func not in func.contract.functions_entry_points @@ -127,43 +155,8 @@ def generate_interface_function_signature( view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" - returns = [ - convert_type_for_solidity_signature_to_string(ret.type).replace("(", "").replace(")", "") - if unroll_structs - else convert_type_for_solidity_signature_to_string(ret.type) - .replace("(", "") - .replace(")", "") - + f" {ret.location}" - if isinstance(ret.type, ArrayType) - and isinstance(ret.type.type, (UserDefinedType, ElementaryType)) - else f"{str(ret.type.type)} memory" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, (Structure, Enum)) - else "address" - if isinstance(ret.type, UserDefinedType) and isinstance(ret.type.type, Contract) - else f"{ret.type} {ret.location}" - if ret.type.is_dynamic - else str(ret.type) - for ret in func.returns - ] - parameters = [ - convert_type_for_solidity_signature_to_string(param.type).replace("(", "").replace(")", "") - if unroll_structs - else convert_type_for_solidity_signature_to_string(param.type) - .replace("(", "") - .replace(")", "") - + f" {param.location}" - if isinstance(param.type, ArrayType) - and isinstance(param.type.type, (UserDefinedType, ElementaryType)) - else f"{str(param.type.type)} memory" - if isinstance(param.type, UserDefinedType) - and isinstance(param.type.type, (Structure, Enum)) - else "address" - if isinstance(param.type, UserDefinedType) and isinstance(param.type.type, Contract) - else f"{param.type} {param.location}" - if param.type.is_dynamic - else str(param.type) - for param in func.parameters - ] + returns = format_params_or_returns(func.returns, unroll_structs) + parameters = format_params_or_returns(func.parameters, unroll_structs) _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) From 1067dc2e9e8e14d1b059bd218229cb0a1266c908 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 13:40:45 +0800 Subject: [PATCH 24/91] Remove legacy comment Co-authored-by: alpharush <0xalpharush@protonmail.com> --- slither/solc_parsing/declarations/contract.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/solc_parsing/declarations/contract.py b/slither/solc_parsing/declarations/contract.py index 0f4aef11e8..74a1cbcf0d 100644 --- a/slither/solc_parsing/declarations/contract.py +++ b/slither/solc_parsing/declarations/contract.py @@ -173,7 +173,6 @@ def _parse_contract_info(self) -> None: self._contract.is_fully_implemented = attributes["fullyImplemented"] self._linearized_base_contracts = attributes["linearizedBaseContracts"] - # self._contract.fullyImplemented = attributes["fullyImplemented"] # Parse base contract information self._parse_base_contract_info() From 2a1d7d59c2e3b273a08f0e032b5eb535e3d06760 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 13:50:28 +0800 Subject: [PATCH 25/91] Add new test for concrete contracts Concrete as in "all functions in contract are fully defined" --- tests/unit/core/test_contract_declaration.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 7760829351..59024f87be 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -27,6 +27,25 @@ def test_abstract_contract(solc_binary_path) -> None: assert not slither.contracts[0].is_fully_implemented +def test_concrete_contract(solc_binary_path) -> None: + solc_path = solc_binary_path("0.8.0") + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) + assert slither.contracts[0].is_fully_implemented + + solc_path = solc_binary_path("0.5.0") + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path + ) + assert slither.contracts[0].is_fully_implemented + + slither = Slither( + Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), + solc_force_legacy_json=True, + solc=solc_path, + ) + assert slither.contracts[0].is_fully_implemented + + def test_private_variable(solc_binary_path) -> None: solc_path = solc_binary_path("0.8.15") slither = Slither( From 0a19a5536f3b1abefe493f35e7e367590da1a387 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:06:42 +0800 Subject: [PATCH 26/91] Create concrete.sol --- .../core/test_data/contract_declaration/concrete.sol | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tests/unit/core/test_data/contract_declaration/concrete.sol diff --git a/tests/unit/core/test_data/contract_declaration/concrete.sol b/tests/unit/core/test_data/contract_declaration/concrete.sol new file mode 100644 index 0000000000..80a181f667 --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/concrete.sol @@ -0,0 +1,9 @@ +pragma solidity ^0.8.0; + +contract SimpleStorage { + uint256 public value; + + function setValue(uint256 newValue) public { + value = newValue; + } +} From 94a499983b913d9f40460f02c5e600ad0463b2a7 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:14:42 +0800 Subject: [PATCH 27/91] Name contract as Concrete --- tests/unit/core/test_data/contract_declaration/concrete.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/core/test_data/contract_declaration/concrete.sol b/tests/unit/core/test_data/contract_declaration/concrete.sol index 80a181f667..602f50b20d 100644 --- a/tests/unit/core/test_data/contract_declaration/concrete.sol +++ b/tests/unit/core/test_data/contract_declaration/concrete.sol @@ -1,6 +1,6 @@ pragma solidity ^0.8.0; -contract SimpleStorage { +contract Concrete { uint256 public value; function setValue(uint256 newValue) public { From 23b13ed692dead349f698b674c801aab528e584e Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:29:13 +0800 Subject: [PATCH 28/91] Use concrete contract for testing --- tests/unit/core/test_contract_declaration.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 59024f87be..6b0a522955 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -29,17 +29,11 @@ def test_abstract_contract(solc_binary_path) -> None: def test_concrete_contract(solc_binary_path) -> None: solc_path = solc_binary_path("0.8.0") - slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "abstract.sol").as_posix(), solc=solc_path) - assert slither.contracts[0].is_fully_implemented - - solc_path = solc_binary_path("0.5.0") - slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), solc=solc_path - ) + slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc=solc_path) assert slither.contracts[0].is_fully_implemented slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "implicit_abstract.sol").as_posix(), + Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc_force_legacy_json=True, solc=solc_path, ) From 80c47c370c944ce653c0dd0225ff605b27a24f40 Mon Sep 17 00:00:00 2001 From: webthethird Date: Wed, 19 Apr 2023 10:07:21 -0500 Subject: [PATCH 29/91] Use a more legible inner function with list comprehension outside --- slither/utils/code_generation.py | 47 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/slither/utils/code_generation.py b/slither/utils/code_generation.py index 0699bb262e..bb8344d8fb 100644 --- a/slither/utils/code_generation.py +++ b/slither/utils/code_generation.py @@ -1,5 +1,5 @@ # Functions for generating Solidity code -from typing import TYPE_CHECKING, Optional, List +from typing import TYPE_CHECKING, Optional from slither.utils.type import ( convert_type_for_solidity_signature_to_string, @@ -118,31 +118,30 @@ def generate_interface_function_signature( Returns None if the function is private or internal, or is a constructor/fallback/receive. """ - def format_params_or_returns(variables: List["LocalVariable"], unroll: bool) -> List[str]: + def format_var(var: "LocalVariable", unroll: bool) -> str: if unroll: - return [ + return ( convert_type_for_solidity_signature_to_string(var.type) .replace("(", "") .replace(")", "") - for var in variables - ] - return [ - convert_type_for_solidity_signature_to_string(var.type) - .replace("(", "") - .replace(")", "") - + f" {var.location}" - if isinstance(var.type, ArrayType) - and isinstance(var.type.type, (UserDefinedType, ElementaryType)) - else f"{str(var.type.type)} memory" - if isinstance(var.type, UserDefinedType) - and isinstance(var.type.type, (Structure, Enum)) - else "address" - if isinstance(var.type, UserDefinedType) and isinstance(var.type.type, Contract) - else f"{var.type} {var.location}" - if var.type.is_dynamic - else str(var.type) - for var in variables - ] + ) + if isinstance(var.type, ArrayType) and isinstance( + var.type.type, (UserDefinedType, ElementaryType) + ): + return ( + convert_type_for_solidity_signature_to_string(var.type) + .replace("(", "") + .replace(")", "") + + f" {var.location}" + ) + if isinstance(var.type, UserDefinedType): + if isinstance(var.type.type, (Structure, Enum)): + return f"{str(var.type.type)} memory" + if isinstance(var.type.type, Contract): + return "address" + if var.type.is_dynamic: + return f"{var.type} {var.location}" + return str(var.type) name, _, _ = func.signature if ( @@ -155,8 +154,8 @@ def format_params_or_returns(variables: List["LocalVariable"], unroll: bool) -> view = " view" if func.view and not func.pure else "" pure = " pure" if func.pure else "" payable = " payable" if func.payable else "" - returns = format_params_or_returns(func.returns, unroll_structs) - parameters = format_params_or_returns(func.parameters, unroll_structs) + returns = [format_var(ret, unroll_structs) for ret in func.returns] + parameters = [format_var(param, unroll_structs) for param in func.parameters] _interface_signature_str = ( name + "(" + ",".join(parameters) + ") external" + payable + pure + view ) From ae2d16a9bb451b0ba99d4200e98867e5f8b7591f Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:38:22 +0800 Subject: [PATCH 30/91] Update tests/unit/core/test_contract_declaration.py Co-authored-by: alpharush <0xalpharush@protonmail.com> --- tests/unit/core/test_contract_declaration.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 6b0a522955..25809ffa8b 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -32,6 +32,7 @@ def test_concrete_contract(solc_binary_path) -> None: slither = Slither(Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc=solc_path) assert slither.contracts[0].is_fully_implemented + solc_path = solc_binary_path("0.5.0") slither = Slither( Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), solc_force_legacy_json=True, From e42c746896bff2e74b9382fc9e55d0f907925db3 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:51:02 +0800 Subject: [PATCH 31/91] Create concrete_old.sol For 0.5.0 pragma testing --- .../test_data/contract_declaration/concrete_old.sol | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/unit/core/test_data/contract_declaration/concrete_old.sol diff --git a/tests/unit/core/test_data/contract_declaration/concrete_old.sol b/tests/unit/core/test_data/contract_declaration/concrete_old.sol new file mode 100644 index 0000000000..c291e19afa --- /dev/null +++ b/tests/unit/core/test_data/contract_declaration/concrete_old.sol @@ -0,0 +1,13 @@ +pragma solidity ^0.5.0; + +contract ConcreteOld { + uint256 public myNumber; + + constructor(uint256 initialNumber) public { + myNumber = initialNumber; + } + + function setNumber(uint256 newNumber) public { + myNumber = newNumber; + } +} From b60eb9ed57aa89db251df1100cc4d43a2f559321 Mon Sep 17 00:00:00 2001 From: DarrenChangJR <48514988+DarrenChangJR@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:52:03 +0800 Subject: [PATCH 32/91] Run pragma 0.5.0 for the correct (old) contract --- tests/unit/core/test_contract_declaration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/core/test_contract_declaration.py b/tests/unit/core/test_contract_declaration.py index 25809ffa8b..28d0fae550 100644 --- a/tests/unit/core/test_contract_declaration.py +++ b/tests/unit/core/test_contract_declaration.py @@ -34,7 +34,7 @@ def test_concrete_contract(solc_binary_path) -> None: solc_path = solc_binary_path("0.5.0") slither = Slither( - Path(CONTRACT_DECL_TEST_ROOT, "concrete.sol").as_posix(), + Path(CONTRACT_DECL_TEST_ROOT, "concrete_old.sol").as_posix(), solc_force_legacy_json=True, solc=solc_path, ) From d15cc6ad142513e6c09eca58ee3361fb9b69b602 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:05:58 +0200 Subject: [PATCH 33/91] Fix custom errors type hint --- slither/core/compilation_unit.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slither/core/compilation_unit.py b/slither/core/compilation_unit.py index 4550ea8948..6d24786eb1 100644 --- a/slither/core/compilation_unit.py +++ b/slither/core/compilation_unit.py @@ -13,7 +13,7 @@ Function, Modifier, ) -from slither.core.declarations.custom_error import CustomError +from slither.core.declarations.custom_error_top_level import CustomErrorTopLevel from slither.core.declarations.enum_top_level import EnumTopLevel from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.declarations.structure_top_level import StructureTopLevel @@ -46,7 +46,7 @@ def __init__(self, core: "SlitherCore", crytic_compilation_unit: CompilationUnit self._using_for_top_level: List[UsingForTopLevel] = [] self._pragma_directives: List[Pragma] = [] self._import_directives: List[Import] = [] - self._custom_errors: List[CustomError] = [] + self._custom_errors: List[CustomErrorTopLevel] = [] self._user_defined_value_types: Dict[str, TypeAliasTopLevel] = {} self._all_functions: Set[Function] = set() @@ -216,7 +216,7 @@ def using_for_top_level(self) -> List[UsingForTopLevel]: return self._using_for_top_level @property - def custom_errors(self) -> List[CustomError]: + def custom_errors(self) -> List[CustomErrorTopLevel]: return self._custom_errors @property From 637b8e2a9d1ea417d44b31c9ea55c1228f5a6bf1 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:07:04 +0200 Subject: [PATCH 34/91] Expose the custom error --- slither/core/declarations/solidity_variables.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slither/core/declarations/solidity_variables.py b/slither/core/declarations/solidity_variables.py index f0e903d7b2..552cf9e7f5 100644 --- a/slither/core/declarations/solidity_variables.py +++ b/slither/core/declarations/solidity_variables.py @@ -201,6 +201,10 @@ def __init__(self, custom_error: CustomError) -> None: # pylint: disable=super- self._custom_error = custom_error self._return_type: List[Union[TypeInformation, ElementaryType]] = [] + @property + def custom_error(self) -> CustomError: + return self._custom_error + def __eq__(self, other: Any) -> bool: return ( self.__class__ == other.__class__ From 718e51160b19f63e207e01a54e2c79a8fd3f5d74 Mon Sep 17 00:00:00 2001 From: Simone Date: Fri, 21 Apr 2023 15:13:09 +0200 Subject: [PATCH 35/91] Improve handling of top level usages --- slither/tools/flattening/flattening.py | 43 +++++++++++++++----------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/slither/tools/flattening/flattening.py b/slither/tools/flattening/flattening.py index 67b3c00a36..7603f5e933 100644 --- a/slither/tools/flattening/flattening.py +++ b/slither/tools/flattening/flattening.py @@ -11,6 +11,7 @@ from slither.core.declarations.contract import Contract from slither.core.declarations.function_top_level import FunctionTopLevel from slither.core.declarations.top_level import TopLevel +from slither.core.declarations.solidity_variables import SolidityCustomRevert from slither.core.solidity_types import MappingType, ArrayType from slither.core.solidity_types.type import Type from slither.core.solidity_types.user_defined_type import UserDefinedType @@ -24,6 +25,7 @@ ) logger = logging.getLogger("Slither-flattening") +logger.setLevel(logging.INFO) # index: where to start # patch_type: @@ -75,6 +77,7 @@ def __init__( self._get_source_code_top_level(compilation_unit.structures_top_level) self._get_source_code_top_level(compilation_unit.enums_top_level) + self._get_source_code_top_level(compilation_unit.custom_errors) self._get_source_code_top_level(compilation_unit.variables_top_level) self._get_source_code_top_level(compilation_unit.functions_top_level) @@ -249,12 +252,14 @@ def _export_from_type( t: Type, contract: Contract, exported: Set[str], - list_contract: List[Contract], - list_top_level: List[TopLevel], + list_contract: Set[Contract], + list_top_level: Set[TopLevel], ): if isinstance(t, UserDefinedType): t_type = t.type - if isinstance(t_type, (EnumContract, StructureContract)): + if isinstance(t_type, TopLevel): + list_top_level.add(t_type) + elif isinstance(t_type, (EnumContract, StructureContract)): if t_type.contract != contract and t_type.contract not in exported: self._export_list_used_contracts( t_type.contract, exported, list_contract, list_top_level @@ -275,8 +280,8 @@ def _export_list_used_contracts( # pylint: disable=too-many-branches self, contract: Contract, exported: Set[str], - list_contract: List[Contract], - list_top_level: List[TopLevel], + list_contract: Set[Contract], + list_top_level: Set[TopLevel], ): # TODO: investigate why this happen if not isinstance(contract, Contract): @@ -332,19 +337,21 @@ def _export_list_used_contracts( # pylint: disable=too-many-branches for read in ir.read: if isinstance(read, TopLevel): - if read not in list_top_level: - list_top_level.append(read) - if isinstance(ir, InternalCall): - function_called = ir.function - if isinstance(function_called, FunctionTopLevel): - list_top_level.append(function_called) - - if contract not in list_contract: - list_contract.append(contract) + list_top_level.add(read) + if isinstance(ir, InternalCall) and isinstance(ir.function, FunctionTopLevel): + list_top_level.add(ir.function) + if ( + isinstance(ir, SolidityCall) + and isinstance(ir.function, SolidityCustomRevert) + and isinstance(ir.function.custom_error, TopLevel) + ): + list_top_level.add(ir.function.custom_error) + + list_contract.add(contract) def _export_contract_with_inheritance(self, contract) -> Export: - list_contracts: List[Contract] = [] # will contain contract itself - list_top_level: List[TopLevel] = [] + list_contracts: Set[Contract] = set() # will contain contract itself + list_top_level: Set[TopLevel] = set() self._export_list_used_contracts(contract, set(), list_contracts, list_top_level) path = Path(self._export_path, f"{contract.name}_{uuid.uuid4()}.sol") @@ -401,8 +408,8 @@ def _export_all(self) -> List[Export]: def _export_with_import(self) -> List[Export]: exports: List[Export] = [] for contract in self._compilation_unit.contracts: - list_contracts: List[Contract] = [] # will contain contract itself - list_top_level: List[TopLevel] = [] + list_contracts: Set[Contract] = set() # will contain contract itself + list_top_level: Set[TopLevel] = set() self._export_list_used_contracts(contract, set(), list_contracts, list_top_level) if list_top_level: From b76eb8cfab1145630d42c654415ca792abe015cf Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:07:23 -0400 Subject: [PATCH 36/91] add bug-revealing tests for issue #1846 --- tests/unit/slithir/test_ssa_generation.py | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 4e26aa54d0..cf351e59be 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1048,3 +1048,41 @@ def test_issue_1748(slither_from_source): operations = f.slithir_operations assign_op = operations[0] assert isinstance(assign_op, InitArray) + + +def test_issue_1846_ternary_in_if(): + source = """ + contract Contract { + function foo(uint x) public returns (uint y) { + if (x > 0) { + y = x > 1 ? 2 : 3; + } else { + y = 4; + } + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + node = f.nodes[1] + assert node.type == NodeType.IF + assert node.son_true.type == NodeType.IF + assert node.son_false.type == NodeType.EXPRESSION + + +def test_issue_1846_ternary_in_ternary(): + source = """ + contract Contract { + function foo(uint x) public returns (uint y) { + y = x > 0 ? x > 1 ? 2 : 3 : 4; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + node = f.nodes[1] + assert node.type == NodeType.IF + assert node.son_true.type == NodeType.IF + assert node.son_false.type == NodeType.EXPRESSION From 3056a9e2d07b9d4d228b0d0fc4def20fd1883260 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:07:51 -0400 Subject: [PATCH 37/91] fix #1846 --- slither/core/cfg/node.py | 15 +++++++++++++++ slither/solc_parsing/declarations/function.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/slither/core/cfg/node.py b/slither/core/cfg/node.py index 5138e796aa..2a48bd2358 100644 --- a/slither/core/cfg/node.py +++ b/slither/core/cfg/node.py @@ -620,6 +620,21 @@ def add_son(self, son: "Node") -> None: """ self._sons.append(son) + def replace_son(self, ori_son: "Node", new_son: "Node") -> None: + """Replace a son node. Do nothing if the node to replace is not a son + + Args: + ori_son: son to replace + new_son: son to replace with + """ + for i, s in enumerate(self._sons): + if s.node_id == ori_son.node_id: + idx = i + break + else: + return + self._sons[idx] = new_son + def set_sons(self, sons: List["Node"]) -> None: """Set the son nodes diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index 7438a7bb0f..fa165ea663 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1396,7 +1396,7 @@ def _split_ternary_node( endif_node = self._new_node(NodeType.ENDIF, node.source_mapping, node.scope) for father in node.fathers: - father.remove_son(node) + father.replace_son(node, condition_node.underlying_node) father.add_son(condition_node.underlying_node) condition_node.underlying_node.add_father(father) From c873427d2a624461e9fe67d8c2c4c0201cb3b10b Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Thu, 20 Apr 2023 16:30:32 -0400 Subject: [PATCH 38/91] remove redundant code --- slither/solc_parsing/declarations/function.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index fa165ea663..def68a8a30 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -1397,7 +1397,6 @@ def _split_ternary_node( for father in node.fathers: father.replace_son(node, condition_node.underlying_node) - father.add_son(condition_node.underlying_node) condition_node.underlying_node.add_father(father) for son in node.sons: From 3a4cdbde0a0687d79ab6772b493b68c9fe01c5c3 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Fri, 21 Apr 2023 13:46:59 -0400 Subject: [PATCH 39/91] fix broken test --- tests/unit/slithir/test_ssa_generation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index cf351e59be..62218e41aa 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1050,7 +1050,7 @@ def test_issue_1748(slither_from_source): assert isinstance(assign_op, InitArray) -def test_issue_1846_ternary_in_if(): +def test_issue_1846_ternary_in_if(slither_from_source): source = """ contract Contract { function foo(uint x) public returns (uint y) { @@ -1071,7 +1071,7 @@ def test_issue_1846_ternary_in_if(): assert node.son_false.type == NodeType.EXPRESSION -def test_issue_1846_ternary_in_ternary(): +def test_issue_1846_ternary_in_ternary(slither_from_source): source = """ contract Contract { function foo(uint x) public returns (uint y) { From 7a2fc5cd9132eac8035aeaec9c6fe6d3958b196a Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 17 Mar 2023 18:24:47 -0500 Subject: [PATCH 40/91] remove new array depth and parse length upfront --- slither/core/expressions/new_array.py | 25 ++++++----------- slither/slithir/convert.py | 2 +- slither/slithir/operations/init_array.py | 2 +- slither/slithir/operations/new_array.py | 18 +++++-------- .../slithir/tmp_operations/tmp_new_array.py | 8 +----- slither/slithir/utils/ssa.py | 3 +-- .../expressions/expression_parsing.py | 27 ++++--------------- .../visitors/expression/expression_printer.py | 3 +-- .../visitors/slithir/expression_to_slithir.py | 2 +- tests/unit/slithir/test_ssa_generation.py | 19 +++++++++++++ 10 files changed, 45 insertions(+), 64 deletions(-) diff --git a/slither/core/expressions/new_array.py b/slither/core/expressions/new_array.py index 162b48f1ec..08ccf24c04 100644 --- a/slither/core/expressions/new_array.py +++ b/slither/core/expressions/new_array.py @@ -2,31 +2,22 @@ from slither.core.expressions.expression import Expression -from slither.core.solidity_types.type import Type if TYPE_CHECKING: - from slither.core.solidity_types.elementary_type import ElementaryType - from slither.core.solidity_types.type_alias import TypeAliasTopLevel + from slither.core.solidity_types.array_type import ArrayType class NewArray(Expression): - - # note: dont conserve the size of the array if provided - def __init__( - self, depth: int, array_type: Union["TypeAliasTopLevel", "ElementaryType"] - ) -> None: + def __init__(self, array_type: "ArrayType") -> None: super().__init__() - assert isinstance(array_type, Type) - self._depth: int = depth - self._array_type: Type = array_type + from slither.core.solidity_types.array_type import ArrayType - @property - def array_type(self) -> Type: - return self._array_type + assert isinstance(array_type, ArrayType) + self._array_type = array_type @property - def depth(self) -> int: - return self._depth + def array_type(self) -> "ArrayType": + return self._array_type def __str__(self): - return "new " + str(self._array_type) + "[]" * self._depth + return "new " + str(self._array_type) diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index 3cfddf5e60..3161addd77 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1077,7 +1077,7 @@ def extract_tmp_call(ins: TmpCall, contract: Optional[Contract]) -> Union[Call, return op if isinstance(ins.ori, TmpNewArray): - n = NewArray(ins.ori.depth, ins.ori.array_type, ins.lvalue) + n = NewArray(ins.ori.array_type, ins.lvalue) n.set_expression(ins.expression) return n diff --git a/slither/slithir/operations/init_array.py b/slither/slithir/operations/init_array.py index 4f6b2f9faf..e0754c7705 100644 --- a/slither/slithir/operations/init_array.py +++ b/slither/slithir/operations/init_array.py @@ -41,7 +41,7 @@ def __str__(self): def convert(elem): if isinstance(elem, (list,)): return str([convert(x) for x in elem]) - return str(elem) + return f"{elem}({elem.type})" init_values = convert(self.init_values) return f"{self.lvalue}({self.lvalue.type}) = {init_values}" diff --git a/slither/slithir/operations/new_array.py b/slither/slithir/operations/new_array.py index 8dad8532f7..b023a04a50 100644 --- a/slither/slithir/operations/new_array.py +++ b/slither/slithir/operations/new_array.py @@ -4,7 +4,7 @@ from slither.core.solidity_types.type import Type if TYPE_CHECKING: - from slither.core.solidity_types.type_alias import TypeAliasTopLevel + from slither.core.solidity_types.type_alias import ArrayType from slither.slithir.variables.constant import Constant from slither.slithir.variables.temporary import TemporaryVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA @@ -13,29 +13,25 @@ class NewArray(Call, OperationWithLValue): def __init__( self, - depth: int, - array_type: "TypeAliasTopLevel", + array_type: "ArrayType", lvalue: Union["TemporaryVariableSSA", "TemporaryVariable"], ) -> None: super().__init__() - assert isinstance(array_type, Type) - self._depth = depth + from slither.core.solidity_types.array_type import ArrayType + + assert isinstance(array_type, ArrayType) self._array_type = array_type self._lvalue = lvalue @property - def array_type(self) -> "TypeAliasTopLevel": + def array_type(self) -> "ArrayType": return self._array_type @property def read(self) -> List["Constant"]: return self._unroll(self.arguments) - @property - def depth(self) -> int: - return self._depth - def __str__(self): args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.array_type}{'[]' * self.depth}({','.join(args)})" + return f"{self.lvalue} = new {self.array_type}({','.join(args)})" diff --git a/slither/slithir/tmp_operations/tmp_new_array.py b/slither/slithir/tmp_operations/tmp_new_array.py index efbdb6242d..04acb4b9ed 100644 --- a/slither/slithir/tmp_operations/tmp_new_array.py +++ b/slither/slithir/tmp_operations/tmp_new_array.py @@ -6,13 +6,11 @@ class TmpNewArray(OperationWithLValue): def __init__( self, - depth: int, array_type: Type, lvalue: TemporaryVariable, ) -> None: super().__init__() assert isinstance(array_type, Type) - self._depth = depth self._array_type = array_type self._lvalue = lvalue @@ -24,9 +22,5 @@ def array_type(self) -> Type: def read(self): return [] - @property - def depth(self) -> int: - return self._depth - def __str__(self): - return f"{self.lvalue} = new {self.array_type}{'[]' * self._depth}" + return f"{self.lvalue} = new {self.array_type}" diff --git a/slither/slithir/utils/ssa.py b/slither/slithir/utils/ssa.py index 9a180d14f6..4c958798b4 100644 --- a/slither/slithir/utils/ssa.py +++ b/slither/slithir/utils/ssa.py @@ -789,10 +789,9 @@ def copy_ir(ir: Operation, *instances) -> Operation: variable_right = get_variable(ir, lambda x: x.variable_right, *instances) return Member(variable_left, variable_right, lvalue) if isinstance(ir, NewArray): - depth = ir.depth array_type = ir.array_type lvalue = get_variable(ir, lambda x: x.lvalue, *instances) - new_ir = NewArray(depth, array_type, lvalue) + new_ir = NewArray(array_type, lvalue) new_ir.arguments = get_rec_values(ir, lambda x: x.arguments, *instances) return new_ir if isinstance(ir, NewElementaryType): diff --git a/slither/solc_parsing/expressions/expression_parsing.py b/slither/solc_parsing/expressions/expression_parsing.py index d0dc4c7e02..c74caf94f4 100644 --- a/slither/solc_parsing/expressions/expression_parsing.py +++ b/slither/solc_parsing/expressions/expression_parsing.py @@ -560,6 +560,7 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) if type_name[caller_context.get_key()] == "ArrayTypeName": depth = 0 + array_type = parse_type(type_name, caller_context) while type_name[caller_context.get_key()] == "ArrayTypeName": # Note: dont conserve the size of the array if provided # We compute it directly @@ -567,29 +568,11 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) type_name = type_name["baseType"] else: type_name = type_name["children"][0] + if depth > 0: + # nested array + array_type = ArrayType(parse_type(type_name, caller_context), array_type.length) depth += 1 - if type_name[caller_context.get_key()] == "ElementaryTypeName": - if is_compact_ast: - array_type = ElementaryType(type_name["name"]) - else: - array_type = ElementaryType(type_name["attributes"]["name"]) - elif type_name[caller_context.get_key()] == "UserDefinedTypeName": - if is_compact_ast: - if "name" not in type_name: - name_type = type_name["pathNode"]["name"] - else: - name_type = type_name["name"] - - array_type = parse_type(UnknownType(name_type), caller_context) - else: - array_type = parse_type( - UnknownType(type_name["attributes"]["name"]), caller_context - ) - elif type_name[caller_context.get_key()] == "FunctionTypeName": - array_type = parse_type(type_name, caller_context) - else: - raise ParsingError(f"Incorrect type array {type_name}") - array = NewArray(depth, array_type) + array = NewArray(array_type) array.set_offset(src, caller_context.compilation_unit) return array diff --git a/slither/visitors/expression/expression_printer.py b/slither/visitors/expression/expression_printer.py index 601627c028..61af4f1c9f 100644 --- a/slither/visitors/expression/expression_printer.py +++ b/slither/visitors/expression/expression_printer.py @@ -76,8 +76,7 @@ def _post_member_access(self, expression: expressions.MemberAccess) -> None: def _post_new_array(self, expression: expressions.NewArray) -> None: array = str(expression.array_type) - depth = expression.depth - val = f"new {array}{'[]' * depth}" + val = f"new {array}" set_val(expression, val) def _post_new_contract(self, expression: expressions.NewContract) -> None: diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index 90905be4ee..bb1c62200c 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -528,7 +528,7 @@ def _post_member_access(self, expression: MemberAccess) -> None: def _post_new_array(self, expression: NewArray) -> None: val = TemporaryVariable(self._node) - operation = TmpNewArray(expression.depth, expression.array_type, val) + operation = TmpNewArray(expression.array_type, val) operation.set_expression(expression) self._result.append(operation) set_val(expression, val) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 4e26aa54d0..46147f8df0 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -34,6 +34,8 @@ TemporaryVariableSSA, ) +from slither.core.solidity_types import ArrayType + # Directory of currently executing script. Will be used as basis for temporary file names. SCRIPT_DIR = pathlib.Path(getsourcefile(lambda: 0)).parent # type:ignore @@ -1048,3 +1050,20 @@ def test_issue_1748(slither_from_source): operations = f.slithir_operations assign_op = operations[0] assert isinstance(assign_op, InitArray) + + +def test_issue_1776(): + source = """ + contract Contract { + function foo() public returns (uint) { + uint[] memory arr = new uint[](2); + return 0; + } + } + """ + with slither_from_source(source) as slither: + c = slither.get_contract_from_name("Contract")[0] + f = c.functions[0] + operations = f.slithir_operations + assign_op = operations[0] + assert isinstance(assign_op.lvalue.type, ArrayType) From 8f9fe80c14fc9e764529886179ffcad4b5df71b8 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Mon, 20 Mar 2023 20:27:15 -0400 Subject: [PATCH 41/91] update test to check nested array length --- tests/unit/slithir/test_ssa_generation.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 46147f8df0..6247707409 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1056,7 +1056,7 @@ def test_issue_1776(): source = """ contract Contract { function foo() public returns (uint) { - uint[] memory arr = new uint[](2); + uint[5][10][] memory arr = new uint[5][10][](2); return 0; } } @@ -1065,5 +1065,13 @@ def test_issue_1776(): c = slither.get_contract_from_name("Contract")[0] f = c.functions[0] operations = f.slithir_operations - assign_op = operations[0] - assert isinstance(assign_op.lvalue.type, ArrayType) + new_op = operations[0] + lvalue = new_op.lvalue + lvalue_type = lvalue.type + assert isinstance(lvalue_type, ArrayType) + lvalue_type1 = lvalue_type.type + assert isinstance(lvalue_type1, ArrayType) + assert lvalue_type1.length_value.value == "10" + lvalue_type2 = lvalue_type1.type + assert isinstance(lvalue_type2, ArrayType) + assert lvalue_type2.length_value.value == "5" From aadee32b95ba522d670e3fc25304c939b827cbfa Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Mon, 20 Mar 2023 20:27:57 -0400 Subject: [PATCH 42/91] Fix incorrect array_type in NewArray --- slither/core/expressions/new_array.py | 3 +-- .../solc_parsing/expressions/expression_parsing.py | 13 +------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/slither/core/expressions/new_array.py b/slither/core/expressions/new_array.py index 08ccf24c04..05d50f1689 100644 --- a/slither/core/expressions/new_array.py +++ b/slither/core/expressions/new_array.py @@ -1,5 +1,4 @@ -from typing import Union, TYPE_CHECKING - +from typing import TYPE_CHECKING from slither.core.expressions.expression import Expression diff --git a/slither/solc_parsing/expressions/expression_parsing.py b/slither/solc_parsing/expressions/expression_parsing.py index c74caf94f4..945a60b8fe 100644 --- a/slither/solc_parsing/expressions/expression_parsing.py +++ b/slither/solc_parsing/expressions/expression_parsing.py @@ -559,19 +559,8 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) type_name = children[0] if type_name[caller_context.get_key()] == "ArrayTypeName": - depth = 0 array_type = parse_type(type_name, caller_context) - while type_name[caller_context.get_key()] == "ArrayTypeName": - # Note: dont conserve the size of the array if provided - # We compute it directly - if is_compact_ast: - type_name = type_name["baseType"] - else: - type_name = type_name["children"][0] - if depth > 0: - # nested array - array_type = ArrayType(parse_type(type_name, caller_context), array_type.length) - depth += 1 + assert isinstance(array_type, ArrayType) array = NewArray(array_type) array.set_offset(src, caller_context.compilation_unit) return array From 73f5ad3c93c13477f7141f30cf13ba223529e210 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Mon, 20 Mar 2023 20:42:29 -0400 Subject: [PATCH 43/91] Fix pylint issues --- slither/core/expressions/new_array.py | 1 + slither/slithir/operations/new_array.py | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/slither/core/expressions/new_array.py b/slither/core/expressions/new_array.py index 05d50f1689..b1d407793f 100644 --- a/slither/core/expressions/new_array.py +++ b/slither/core/expressions/new_array.py @@ -9,6 +9,7 @@ class NewArray(Expression): def __init__(self, array_type: "ArrayType") -> None: super().__init__() + # pylint: disable=import-outside-toplevel from slither.core.solidity_types.array_type import ArrayType assert isinstance(array_type, ArrayType) diff --git a/slither/slithir/operations/new_array.py b/slither/slithir/operations/new_array.py index b023a04a50..2d032ccd8c 100644 --- a/slither/slithir/operations/new_array.py +++ b/slither/slithir/operations/new_array.py @@ -1,10 +1,10 @@ from typing import List, Union, TYPE_CHECKING -from slither.slithir.operations.lvalue import OperationWithLValue + +from slither.core.solidity_types.array_type import ArrayType from slither.slithir.operations.call import Call -from slither.core.solidity_types.type import Type +from slither.slithir.operations.lvalue import OperationWithLValue if TYPE_CHECKING: - from slither.core.solidity_types.type_alias import ArrayType from slither.slithir.variables.constant import Constant from slither.slithir.variables.temporary import TemporaryVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA @@ -17,8 +17,6 @@ def __init__( lvalue: Union["TemporaryVariableSSA", "TemporaryVariable"], ) -> None: super().__init__() - from slither.core.solidity_types.array_type import ArrayType - assert isinstance(array_type, ArrayType) self._array_type = array_type From 063418da60658f8595a058cb972e0d99f795029e Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Sun, 2 Apr 2023 18:25:16 -0400 Subject: [PATCH 44/91] Assert array dynamic or static --- tests/unit/slithir/test_ssa_generation.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 6247707409..dc5113617e 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1068,10 +1068,13 @@ def test_issue_1776(): new_op = operations[0] lvalue = new_op.lvalue lvalue_type = lvalue.type + assert lvalue_type.is_dynamic assert isinstance(lvalue_type, ArrayType) lvalue_type1 = lvalue_type.type + assert not lvalue_type1.is_dynamic assert isinstance(lvalue_type1, ArrayType) assert lvalue_type1.length_value.value == "10" lvalue_type2 = lvalue_type1.type + assert not lvalue_type2.is_dynamic assert isinstance(lvalue_type2, ArrayType) assert lvalue_type2.length_value.value == "5" From c8e6c4a6a84bc9334e926730710c3441dbf8e496 Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Sun, 2 Apr 2023 18:30:48 -0400 Subject: [PATCH 45/91] Reorder assertions --- tests/unit/slithir/test_ssa_generation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index dc5113617e..7f2f042cbc 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1068,13 +1068,13 @@ def test_issue_1776(): new_op = operations[0] lvalue = new_op.lvalue lvalue_type = lvalue.type - assert lvalue_type.is_dynamic assert isinstance(lvalue_type, ArrayType) + assert lvalue_type.is_dynamic lvalue_type1 = lvalue_type.type - assert not lvalue_type1.is_dynamic assert isinstance(lvalue_type1, ArrayType) + assert not lvalue_type1.is_dynamic assert lvalue_type1.length_value.value == "10" lvalue_type2 = lvalue_type1.type - assert not lvalue_type2.is_dynamic assert isinstance(lvalue_type2, ArrayType) + assert not lvalue_type2.is_dynamic assert lvalue_type2.length_value.value == "5" From 0c803a1265afc7a787dac05355ff1e60df0068ba Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Fri, 21 Apr 2023 13:49:27 -0400 Subject: [PATCH 46/91] fix broken test --- tests/unit/slithir/test_ssa_generation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/slithir/test_ssa_generation.py b/tests/unit/slithir/test_ssa_generation.py index 7f2f042cbc..d263d14537 100644 --- a/tests/unit/slithir/test_ssa_generation.py +++ b/tests/unit/slithir/test_ssa_generation.py @@ -1052,7 +1052,7 @@ def test_issue_1748(slither_from_source): assert isinstance(assign_op, InitArray) -def test_issue_1776(): +def test_issue_1776(slither_from_source): source = """ contract Contract { function foo() public returns (uint) { From 1fdb17529b04844ee887e0861fb300e0328dff4e Mon Sep 17 00:00:00 2001 From: William Aaron Cheung Date: Fri, 21 Apr 2023 21:17:40 -0400 Subject: [PATCH 47/91] update ast parsing test artifacts --- .../expected/conditional-all.sol-0.4.0-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.1-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.10-compact.json | 5 ----- .../expected/conditional-all.sol-0.4.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.11-compact.json | 5 ----- .../expected/conditional-all.sol-0.4.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.12-compact.json | 2 +- .../expected/conditional-all.sol-0.4.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.13-compact.json | 2 +- .../expected/conditional-all.sol-0.4.13-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.14-compact.json | 2 +- .../expected/conditional-all.sol-0.4.14-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.15-compact.json | 2 +- .../expected/conditional-all.sol-0.4.15-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.16-compact.json | 2 +- .../expected/conditional-all.sol-0.4.16-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.17-compact.json | 2 +- .../expected/conditional-all.sol-0.4.17-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.18-compact.json | 2 +- .../expected/conditional-all.sol-0.4.18-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.19-compact.json | 2 +- .../expected/conditional-all.sol-0.4.19-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.2-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.20-compact.json | 2 +- .../expected/conditional-all.sol-0.4.20-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.21-compact.json | 2 +- .../expected/conditional-all.sol-0.4.21-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.22-compact.json | 2 +- .../expected/conditional-all.sol-0.4.22-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.23-compact.json | 2 +- .../expected/conditional-all.sol-0.4.23-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.24-compact.json | 2 +- .../expected/conditional-all.sol-0.4.24-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.25-compact.json | 2 +- .../expected/conditional-all.sol-0.4.25-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.26-compact.json | 2 +- .../expected/conditional-all.sol-0.4.26-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.3-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.4-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.5-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.6-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.7-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.8-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.4.9-compact.json | 5 ----- .../test_data/expected/conditional-all.sol-0.4.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.10-compact.json | 2 +- .../expected/conditional-all.sol-0.5.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.11-compact.json | 2 +- .../expected/conditional-all.sol-0.5.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.12-compact.json | 2 +- .../expected/conditional-all.sol-0.5.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.13-compact.json | 2 +- .../expected/conditional-all.sol-0.5.13-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.14-compact.json | 2 +- .../expected/conditional-all.sol-0.5.14-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.15-compact.json | 2 +- .../expected/conditional-all.sol-0.5.15-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.16-compact.json | 2 +- .../expected/conditional-all.sol-0.5.16-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.17-compact.json | 2 +- .../expected/conditional-all.sol-0.5.17-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.7-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.8-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.5.9-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.5.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.10-compact.json | 2 +- .../expected/conditional-all.sol-0.6.10-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.11-compact.json | 2 +- .../expected/conditional-all.sol-0.6.11-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.12-compact.json | 2 +- .../expected/conditional-all.sol-0.6.12-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.7-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.7-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.8-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.8-legacy.json | 2 +- .../expected/conditional-all.sol-0.6.9-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.6.9-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.0-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.0-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.1-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.1-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.2-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.2-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.3-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.3-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.4-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.4-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.5-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.5-legacy.json | 2 +- .../expected/conditional-all.sol-0.7.6-compact.json | 2 +- .../test_data/expected/conditional-all.sol-0.7.6-legacy.json | 2 +- .../expected/conditional-all.sol-0.8.0-compact.json | 2 +- .../expected/conditional-all.sol-0.8.1-compact.json | 2 +- .../expected/conditional-all.sol-0.8.10-compact.json | 2 +- .../expected/conditional-all.sol-0.8.11-compact.json | 2 +- .../expected/conditional-all.sol-0.8.12-compact.json | 2 +- .../expected/conditional-all.sol-0.8.13-compact.json | 2 +- .../expected/conditional-all.sol-0.8.14-compact.json | 2 +- .../expected/conditional-all.sol-0.8.15-compact.json | 2 +- .../expected/conditional-all.sol-0.8.2-compact.json | 2 +- .../expected/conditional-all.sol-0.8.3-compact.json | 2 +- .../expected/conditional-all.sol-0.8.4-compact.json | 2 +- .../expected/conditional-all.sol-0.8.5-compact.json | 2 +- .../expected/conditional-all.sol-0.8.6-compact.json | 2 +- .../expected/conditional-all.sol-0.8.7-compact.json | 2 +- .../expected/conditional-all.sol-0.8.8-compact.json | 2 +- .../expected/conditional-all.sol-0.8.9-compact.json | 2 +- 146 files changed, 134 insertions(+), 194 deletions(-) delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.13-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.14-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.15-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.16-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.17-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.18-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.19-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.20-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.21-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.22-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.23-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.24-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.25-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.26-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json deleted file mode 100644 index 6ef3d40e78..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.4.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.13-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.14-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.15-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.16-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.17-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.5.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.10-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.11-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.12-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.7-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.8-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.6.9-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.0-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.1-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.2-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.3-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.4-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.5-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.7.6-legacy.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.0-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.1-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.10-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.11-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.12-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.13-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.14-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.15-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.2-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.3-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.4-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.5-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.6-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.7-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.8-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json index 6ef3d40e78..01b7d5fb77 100644 --- a/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/conditional-all.sol-0.8.9-compact.json @@ -1,5 +1,5 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->16[label=\"True\"];\n14->26[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->6;\n6[label=\"Node Type: IF 6\n\"];\n6->7[label=\"True\"];\n6->8[label=\"False\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->9;\n8[label=\"Node Type: EXPRESSION 8\n\"];\n8->9;\n9[label=\"Node Type: END_IF 9\n\"];\n9->10;\n10[label=\"Node Type: IF 10\n\"];\n10->11[label=\"True\"];\n10->12[label=\"False\"];\n11[label=\"Node Type: EXPRESSION 11\n\"];\n11->13;\n12[label=\"Node Type: EXPRESSION 12\n\"];\n12->13;\n13[label=\"Node Type: END_IF 13\n\"];\n13->14;\n14[label=\"Node Type: IF 14\n\"];\n14->26[label=\"True\"];\n14->16[label=\"False\"];\n16[label=\"Node Type: EXPRESSION 16\n\"];\n16->17;\n17[label=\"Node Type: END_IF 17\n\"];\n17->18;\n18[label=\"Node Type: IF 18\n\"];\n18->19[label=\"True\"];\n18->20[label=\"False\"];\n19[label=\"Node Type: EXPRESSION 19\n\"];\n19->21;\n20[label=\"Node Type: EXPRESSION 20\n\"];\n20->21;\n21[label=\"Node Type: END_IF 21\n\"];\n21->22;\n22[label=\"Node Type: IF 22\n\"];\n22->23[label=\"True\"];\n22->24[label=\"False\"];\n23[label=\"Node Type: EXPRESSION 23\n\"];\n23->25;\n24[label=\"Node Type: EXPRESSION 24\n\"];\n24->25;\n25[label=\"Node Type: END_IF 25\n\"];\n26[label=\"Node Type: IF 26\n\"];\n26->27[label=\"True\"];\n26->28[label=\"False\"];\n27[label=\"Node Type: EXPRESSION 27\n\"];\n27->29;\n28[label=\"Node Type: EXPRESSION 28\n\"];\n28->29;\n29[label=\"Node Type: END_IF 29\n\"];\n29->17;\n}\n" } } \ No newline at end of file From 0dde4cc1f848672dfef8bf8c72dea684c8f8a720 Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 22 Apr 2023 17:25:32 +0200 Subject: [PATCH 48/91] Fix abi.decode with a UserDefinedType fixed array --- .../visitors/slithir/expression_to_slithir.py | 6 +++++- tests/e2e/solc_parsing/test_ast_parsing.py | 1 + ...bi-decode-fixed-array.sol-0.8.10-compact.zip | Bin 0 -> 4857 bytes ...bi-decode-fixed-array.sol-0.8.11-compact.zip | Bin 0 -> 4875 bytes ...bi-decode-fixed-array.sol-0.8.12-compact.zip | Bin 0 -> 4870 bytes ...bi-decode-fixed-array.sol-0.8.13-compact.zip | Bin 0 -> 4870 bytes ...bi-decode-fixed-array.sol-0.8.14-compact.zip | Bin 0 -> 4862 bytes ...bi-decode-fixed-array.sol-0.8.15-compact.zip | Bin 0 -> 4868 bytes ...abi-decode-fixed-array.sol-0.8.8-compact.zip | Bin 0 -> 4856 bytes ...i-decode-fixed-array.sol-0.8.10-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.11-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.12-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.13-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.14-compact.json | 7 +++++++ ...i-decode-fixed-array.sol-0.8.15-compact.json | 7 +++++++ ...bi-decode-fixed-array.sol-0.8.8-compact.json | 7 +++++++ .../abi-decode-fixed-array.sol | 16 ++++++++++++++++ 17 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index 90905be4ee..d55dfb5890 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -10,6 +10,7 @@ Contract, EnumContract, EnumTopLevel, + Enum, ) from slither.core.expressions import ( AssignmentOperation, @@ -405,10 +406,13 @@ def _post_index_access(self, expression: IndexAccess) -> None: right = get(expression.expression_right) operation: Operation # Left can be a type for abi.decode(var, uint[2]) - if isinstance(left, Type): + if isinstance(left, (Type, Contract, Enum)): # Nested type are not yet supported by abi.decode, so the assumption # Is that the right variable must be a constant assert isinstance(right, Constant) + # Case for abi.decode(var, I[2]) where I is an interface/contract or an enum + if isinstance(left, (Contract, Enum)): + left = UserDefinedType(left) t = ArrayType(left, int(right.value)) set_val(expression, t) return diff --git a/tests/e2e/solc_parsing/test_ast_parsing.py b/tests/e2e/solc_parsing/test_ast_parsing.py index 78aa8a2914..790f947cc1 100644 --- a/tests/e2e/solc_parsing/test_ast_parsing.py +++ b/tests/e2e/solc_parsing/test_ast_parsing.py @@ -428,6 +428,7 @@ def make_version(minor: int, patch_min: int, patch_max: int) -> List[str]: Test("user_defined_value_type/in_parenthesis-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("user_defined_value_type/top-level-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("user_defined_value_type/using-for-0.8.8.sol", ["0.8.8"] + make_version(8, 10, 15)), + Test("user_defined_value_type/abi-decode-fixed-array.sol", ["0.8.8"] + make_version(8, 10, 15)), Test("bytes_call.sol", ["0.8.12"]), Test("modifier_identifier_path.sol", VERSIONS_08), Test("free_functions/libraries_from_free.sol", ["0.8.12"]), diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..b65e511efb24373d3157a32071cdb114e9b73141 GIT binary patch literal 4857 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 G0Q^7kpfbe( literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9a78fceafc83990aa8d7df96d3f808a8e85035e GIT binary patch literal 4875 zcmb8z)k6~iqXqEMB`w_@!lV(9RzbQ;CX7)-y4j>bx=R=h(hU-_(NpPWbccX+Bk29U z`+gtpIS=RQ`~yEdO&nZB05*UOz#Nll;_+)7piKn;#MuJ?KmY&$wt))U+CkiG?S$>2 z{&u#)U{6nQ0MN_L*~-q}-Obb63hW7Sg!+L=3>X#IFkUEH(JNJj#3d#$<>nMZ@MJOjH69P*ya38qNmoLTe~tBP z{0;_c@O*%p^$~(`nZ0m+-{C3C#|-%Ew^7`rsZ_m1<1ag0idChStU0uNm7TOTEvhea^B=33t2El!}ET2({I>+)>shK4Vts!;(PWaZAi~5R12vMKWv8G;#2g+Oeq5C=n zVA0RQz4q(3`#*4?{wo>>IwJAQ7Z=&r@>`W8)E@c3s7J{i0d^G;)uDngE5-AXY+px% zf#U~k@$a}i$H)0BE7!6fugHZf956Av7KiNoO!w(Gi_d(-(2(+r$T;b|ugpE`W55e} zM4SG2b&nBDDp0ao$}DNN9#OWrSXWgaO zwp366U)-BZ9iN3h3F;AgJd&JJ^_z>`$nk!4Yq`hh;?hpoy||^=7wetksS;66*6J~t zOSKnIR$TW)TXGIFp9q;(F=18Fu^hhHev`0p&Qk`Q6W<<8YyzBa3=!M%a-p(JP7j-l z>V+U#)dsH`u9U#0X32Bfaf$5|XO;6AB1GDxCt{PS4wKWL-$KYHD1wy75kBa+u9SY7 zXC($a#^Oox9%@9*K~5EqfZm-WrDAqggShfu)Z~JCdh{{dP#c{V0iCVLh_Vei&RW+L!R!T+ge)t&w z@N=`{E47>3$UrgVBYo@qXJ~Y1n7`mnbmpqP|7%ho8QB-BJSQbv=6e}n7F`u8>!TbP zSVZZ0d0bIq_Md*rv7=6Q*ZsktM$Q6idSxA9q{<#f9>=_E87#yy9|c}m%?GIH*e9$F zXTBh=^QO~pHd{RoM%*^_(oyNMT75wetFibW54QGx3EpY+7rlnUvr*bT#+p%ytXV!z= zA6|Ilw-jtNpIOIP&VDLX(i1S_88SI+(^e_?8{H;tMGXoZG3(@KpE8~u_PCi_P=13y zp@ZnM+~tVmf0|^(9V$mDPhV2?^U9Cv?_cISN~n}4y$qc3@Lferf}$qf;#a#)GEOIw zpTybI#ySJ9OOX;A1m0GyFllU=%pN&LO-uHA;Tk_Cw)Nz^>SghxcX-9I^jFd-TAw~o z__XjaH|f_5XS;D!AZXF>P#a(hVz?dRb=eE$C##f8PJ_8AD1xY@JD%kC$i zwN9BHF(Sfsq{9J7k&%?LLR*em+n#L*R-$qB8LTWqKlhvC9Hjo6y8L>VZl0G<& zZy&_N$`&q1Mr~d3&VcSb*HUCZfPFdEtYA~^)7%Kn1!Q>-%>)Ta3P-z)-*kwVs=9C4 z(k)xf^SBn}?P9S)50cmpxCwre&h8YAMULcAWj?w2!Sh!{>~$)FuiJIU?{h8tg<(~@ zeOZ3Vgd>75-OMA>TkEesZong$zTy`jRt3eet(Dy?b_FV~^}#a?Bvh%(B)yu;IYnNr z6`?Ft1Xyi|AwJP4Z;Q!IOnIP5Pw#c&7tw2kdL#FIo8fz)QUncRGx4H@VBk_62zru& z8&n=YsKUk+9v}60DNE z79m1Ce6WW=DEGYHYYcdlSPEliTCr5V={~t}uZ0)O(V$gV9X@%Lk;92Zd;D@j0y$8R zjhKQizAR=)$2?9)Wb!G)r5G2)D9S2k(sIA3N$T7eP$wHLtJOa>xfwp>BQRLCaEV9e z;q!3YFTO3?SgNJCH*#Z!?S3+NBU_MHvaxn3Yaf79Ca1!4$C^v;lr#QLzOZ&Bow9%+ z=iH_A@D8D%6)ESS^hnJ*Rg9%-I6r?e75lf*7;jL9!U}d>*1$x@ywk4bgEY6Z(ucIi z_sQI^8>wA5Gx@EVI`C*=XHl$-Z{Ug?QdmDSd@9M<;B(AB*Wz`f!0ecc&=(&KOHtzZ zzfvg7ar7>rC40L{UY07d5b^b$M%+Jyo=ebs0(250Z?naxbhmyz|BPbY!YDP?VvYnd z`KEY!P(`2Gjpo+v;}@A;1k|RO9*OUa9uhSmevY3>?eu5>9ulns^9L1sttN3RX2yxz zQEZsnoLM)AxzOf_NN*ax{)YP9Hj8-5QO%#I-rN|7rtWf$mH5m2rz9L|4=Pe^CR^&a zdaeBT<4eAA`(Qa`L@=z@@};yp#$s+%1gH7$w7f+w-}Ow3^!32e@)t~!#pv{NEtEhj6vgU^Y*%z{nF zK7OkgO+QSBCAH*W&XUnXp<99y)ExQomS)lu^&v-{OoQx(8JIolNY2gT04`r}dzw zdWhqDGe!lo&>(w-(uNsav^G*b@^^n2m7(xKRHrUsIf=8s7d{w(J@Ax}tg9*}sN+N4SX*g^p5BU`3@COqxOtvBMEpZ<-aK zwmXS0tbDYV#u%NG1^eFhpjf5>tnNy{!?^#nSlkPa{f;d)KLBt;3EWCh?>!A=@65n@ z$>!^3`Vr(M(bzi$l`I!(JBOcMfm zUTKmdu)OSf$H?YX&!0^FK6G$jEBDBYzbIWdU?z7QrXMS6Gn|!<+VFFx#j zIIEvABtYh(wKPD5&~NVf7jfMBwC67@)%-?PuKFR0GWuez^KY6BX*WiH+=USiq#aP5 z#bWl{A~tbxd(kCDF{ykfg?d%PK5-WBWKJcX)w2Vj7+^-HyJ>&{(pU!rowU6wF^92A zyF5e~{Lyp%sr&Ea1nMVvMtNbB|Xi-Nf;Fm~L{d)O7|AeVkHqGD2mrFH7 zHA&^WToxYxN^>{)sQJ^saR-#4Qk0Dn%2M0}uHMb3rB+!t+hxR&Ee!jifv$8)x7~|Y zecpYfY^UE`3@LL-L3_lS9qzM$P3Kw)RZ%&)K908{#P3MV*y)Wd%cWA=n>RtH@BS@T z54HDY(e6LP&HkZoiVMqgTcZ>i&Tav2?#G#ai)9BP73ex-X0_L5f=74QT&!a8k`YSrx>%0jYxKjq&K4&&3sFB)=HJlBIurN> zl#CVC1xqeT2FoeNpSAF_)9~KU*L>6WcZ5SbFMCvO4!D~tGi*6QX%_PC?QH%~JFaz~1zR9akx*NW!0kX! zhSs}k9j=LNKKlI8(S+P|a|HvA5|*2nBd^}>z>SeiYS~-H@cSNNLMhce9$JEWn&gK7 zQSo8^riRL%^>~q=N?94C>~9&uHcmK@;7=I0-3$$3i9{_tj*76FFEo1g-4x>QdOl~m zbdCh+SgHjuFL*tO{#)#XPc4#v#J_EYzOrnsOWI&nc;M35ne*hB3sJyGvhFOSmCRDS zL)BAi&vrg4w(vYfnMge1YCmxDM8#mobwq^tAx;<8thPZUa8kZpN5rYk{=#$&tKHov ztkNz!a+p9f)_zn?^2MT2yxu)+z1~h0I=OOonRXN;Pmm_eH>;J7M2=OIZPzm(BMgOt zlX$~pdOJBSVe;a7+-1VL3sTe}5S^zq!9S?z(y3_c1Y1=`@lUCOr2{g|oM(PD9#MH~ z42N4$$p#RqQ_JxpI-_{Ceq60S0jG1yglmvgreevXoznBNeFbR?3qAm@ilD*`mWBM} z2^zkV`TQ#b8d8~vvI1_*t8hg`lA7zNNdj-a^>z*rWK zLMU;0WpWo>X{`>~x%%hO(>H3x^6{)6#sf@1d{H09=Q?`vW|kS$xBn?{**I~@$aS74 zit5gy-kt)z<(IaMHOwC~kJHVk7Ld%wKIMMpf1 z7nU_A*r0o=VMkAsu^4#rwL^;#!z}eaQ;uaOn9&v`2s(LDiTy6raZrVYc<`y^O#r8f zAt(mIQ5DYYh9kkKuSMOpddkFbJ~&ma`Q$0#FSy+KwQN9Uy=-_pr+JWGRooysGNJeC zbbo?n3%(tcb!aXu0IQ=pz0@_?8ac!#O116}Dabm!@v6@JLM2AEvh0U9-C+8tnT2>M z$*R2S#~9s&B(Hgx{4Pq7El;jU5i{@Fp?YHVugjIXR!%a5= YgDO2uJpBK@u>Moa|7`Yu$O{1YAIe@ZKmY&$ literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..1b69e8e3d5d10acd501881ea862de234b4eb0006 GIT binary patch literal 4870 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 K{C|`S0QevDwlub~brpV*2Eq8cv@WhGF=9 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 VxOo44Vg098|Je`!u`U4Me*mviO`QM$ literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip b/tests/e2e/solc_parsing/test_data/compile/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..d574a7cb8486ac0764de875611abf38c434d2514 GIT binary patch literal 4856 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 G0Q^6wYe&HV literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.10-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.11-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.12-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.13-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.14-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.15-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json new file mode 100644 index 0000000000..070b687bd8 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/user_defined_value_type/abi-decode-fixed-array.sol-0.8.8-compact.json @@ -0,0 +1,7 @@ +{ + "I": {}, + "C": { + "test_decode_interface_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "test_decode_enum_array(bytes)": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol b/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol new file mode 100644 index 0000000000..14a59b5a2a --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/user_defined_value_type/abi-decode-fixed-array.sol @@ -0,0 +1,16 @@ +interface I {} +enum A {a,b} + +contract C { + I[6] interfaceArray; + A[6] enumArray; + + function test_decode_interface_array(bytes memory data) public { + interfaceArray = abi.decode(data, (I[6])); + } + + function test_decode_enum_array(bytes memory data) public { + enumArray = abi.decode(data, (A[6])); + } + +} From c08191b1c1c7f7d8bfcfc11274268c0f086a41b4 Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 22 Apr 2023 17:38:58 +0200 Subject: [PATCH 49/91] Remove assertion --- slither/visitors/slithir/expression_to_slithir.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/visitors/slithir/expression_to_slithir.py b/slither/visitors/slithir/expression_to_slithir.py index 90905be4ee..741486fb33 100644 --- a/slither/visitors/slithir/expression_to_slithir.py +++ b/slither/visitors/slithir/expression_to_slithir.py @@ -622,7 +622,6 @@ def _post_unary_operation(self, expression: UnaryOperation) -> None: set_val(expression, value) elif expression.type in [UnaryOperationType.MINUS_PRE]: lvalue = TemporaryVariable(self._node) - assert isinstance(value.type, ElementaryType) operation = Binary(lvalue, Constant("0", value.type), value, BinaryType.SUBTRACTION) operation.set_expression(expression) self._result.append(operation) From 9d7ebb556de99cc3f2709b15535d5e0e7f141e2c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 24 Apr 2023 07:54:09 -0500 Subject: [PATCH 50/91] include readme in home page of docs generated by pdoc --- slither/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slither/__init__.py b/slither/__init__.py index c709b144cf..c8c3a9cc96 100644 --- a/slither/__init__.py +++ b/slither/__init__.py @@ -1 +1,5 @@ +""" +.. include:: ../README.md +""" from .slither import Slither + From d8f2b9d868b6662d86a3c98111e1c02c6142030c Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 24 Apr 2023 07:57:52 -0500 Subject: [PATCH 51/91] remove newline --- slither/__init__.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/__init__.py b/slither/__init__.py index c8c3a9cc96..dd9b8a1a22 100644 --- a/slither/__init__.py +++ b/slither/__init__.py @@ -2,4 +2,3 @@ .. include:: ../README.md """ from .slither import Slither - From 5afb9355be417f163e7c420d9a7e556a676b1070 Mon Sep 17 00:00:00 2001 From: Simone Date: Mon, 24 Apr 2023 21:13:37 +0200 Subject: [PATCH 52/91] Improve tuple analysis --- .../operations/unused_return_values.py | 42 ++++++++++++------ ...turnValues_0_4_25_unused_return_sol__0.txt | 8 +++- ...turnValues_0_5_16_unused_return_sol__0.txt | 8 +++- ...turnValues_0_6_11_unused_return_sol__0.txt | 8 +++- ...eturnValues_0_7_6_unused_return_sol__0.txt | 8 +++- .../unused-return/0.4.25/unused_return.sol | 8 ++++ .../0.4.25/unused_return.sol-0.4.25.zip | Bin 3212 -> 3637 bytes .../unused-return/0.5.16/unused_return.sol | 8 ++++ .../0.5.16/unused_return.sol-0.5.16.zip | Bin 3223 -> 3651 bytes .../unused-return/0.6.11/unused_return.sol | 8 ++++ .../0.6.11/unused_return.sol-0.6.11.zip | Bin 3116 -> 3540 bytes .../unused-return/0.7.6/unused_return.sol | 8 ++++ .../0.7.6/unused_return.sol-0.7.6.zip | Bin 3039 -> 3465 bytes 13 files changed, 84 insertions(+), 22 deletions(-) diff --git a/slither/detectors/operations/unused_return_values.py b/slither/detectors/operations/unused_return_values.py index 93dda274aa..80be98b45d 100644 --- a/slither/detectors/operations/unused_return_values.py +++ b/slither/detectors/operations/unused_return_values.py @@ -3,7 +3,7 @@ """ from typing import List -from slither.core.cfg.node import Node +from slither.core.cfg.node import Node, NodeType from slither.core.declarations import Function from slither.core.declarations.function_contract import FunctionContract from slither.core.variables.state_variable import StateVariable @@ -12,8 +12,8 @@ DetectorClassification, DETECTOR_INFO, ) -from slither.slithir.operations import HighLevelCall -from slither.slithir.operations.operation import Operation +from slither.slithir.operations import HighLevelCall, Assignment, Unpack, Operation +from slither.slithir.variables import TupleVariable from slither.utils.output import Output @@ -50,13 +50,18 @@ class UnusedReturnValues(AbstractDetector): WIKI_RECOMMENDATION = "Ensure that all the return values of the function calls are used." def _is_instance(self, ir: Operation) -> bool: # pylint: disable=no-self-use - return isinstance(ir, HighLevelCall) and ( - ( - isinstance(ir.function, Function) - and ir.function.solidity_signature - not in ["transfer(address,uint256)", "transferFrom(address,address,uint256)"] + return ( + isinstance(ir, HighLevelCall) + and ( + ( + isinstance(ir.function, Function) + and ir.function.solidity_signature + not in ["transfer(address,uint256)", "transferFrom(address,address,uint256)"] + ) + or not isinstance(ir.function, Function) ) - or not isinstance(ir.function, Function) + or ir.node.type == NodeType.TRY + and isinstance(ir, (Assignment, Unpack)) ) def detect_unused_return_values( @@ -71,18 +76,27 @@ def detect_unused_return_values( """ values_returned = [] nodes_origin = {} + # pylint: disable=too-many-nested-blocks for n in f.nodes: for ir in n.irs: if self._is_instance(ir): # if a return value is stored in a state variable, it's ok if ir.lvalue and not isinstance(ir.lvalue, StateVariable): - values_returned.append(ir.lvalue) + values_returned.append((ir.lvalue, None)) nodes_origin[ir.lvalue] = ir + if isinstance(ir.lvalue, TupleVariable): + # we iterate the number of elements the tuple has + # and add a (variable, index) in values_returned for each of them + for index in range(len(ir.lvalue.type)): + values_returned.append((ir.lvalue, index)) for read in ir.read: - if read in values_returned: - values_returned.remove(read) - - return [nodes_origin[value].node for value in values_returned] + remove = (read, ir.index) if isinstance(ir, Unpack) else (read, None) + if remove in values_returned: + # this is needed to remove the tuple variable when the first time one of its element is used + if remove[1] is not None and (remove[0], None) in values_returned: + values_returned.remove((remove[0], None)) + values_returned.remove(remove) + return [nodes_origin[value].node for (value, _) in values_returned] def _detect(self) -> List[Output]: """Detect high level calls which return a value that are never used""" diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt index ec28fa9e54..2d70ddd1cf 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_4_25_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#31) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#19) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol#36) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt index 0cf04d2833..5a651712e5 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_5_16_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#36) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#31) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol#19) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt index be0a8c6875..5f1d751b7c 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_6_11_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#19) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#31) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol#36) diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt index ec74a9458d..4780c79057 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedReturnValues_0_7_6_unused_return_sol__0.txt @@ -1,4 +1,8 @@ -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#22) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by t.g() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#31) -User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#17-29) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18) +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by a.add(0) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#23) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by t.f() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#19) + +User.test(Target) (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#18-37) ignores return value by (e) = t.g() (tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol#36) diff --git a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol index d1c1895987..ef22b63aed 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ contract Target{ function f() public returns(uint); + function g() public returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol-0.4.25.zip b/tests/e2e/detectors/test_data/unused-return/0.4.25/unused_return.sol-0.4.25.zip index bfe469a89abf4895a2d531565516f73cb9def65c..8f64587ae63b2629918c62601162154b7f26daf6 100644 GIT binary patch delta 3527 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 F001Tf2>}2A diff --git a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol index d1c1895987..ef22b63aed 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ contract Target{ function f() public returns(uint); + function g() public returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol-0.5.16.zip b/tests/e2e/detectors/test_data/unused-return/0.5.16/unused_return.sol-0.5.16.zip index 90d77686955906a58c0d3cdc78f60a622bd82581..13d0d7a3237383a7148422b90c85faf13a7ddc0e 100644 GIT binary patch delta 3534 zcmV;<4KebU8N(bHP)h>@KL7#%4gkBRm{#0i?t7OF000wnkr-8f^+P_6+Z$mKi;1jb1=*y27Vz=tPXd?18Wr?*qL{RwzK`Feu6l{SWHaDAIL##UIzEjLe8NwZ`3*Ap<5iw^@?ATUUWeT`5Y z{X_F0d^9)SSxp!*Npl&7GqIh7^fewUeP#R9Gy3G5b*N(d)XSor;ORgFOSE zgboMb7Ol2GucTF60?#6rACD+q3?Q&)8J5ibGHv3s<$EGXNeMNq9hsh5#Y+hqeLa=E zU0QL15KNg{&oWYoNUzqpQuRMWyoPNKkc&iYp4-Wg0+@Gq`xNz zq%nuU>Q&Z%6OTYs?X?PSEg_neQR=xG_>59UQDK!)uWRYSY3Ljelw&6@b8@LK4B6hp zAo5_28c+Wr>vpdiMGT++ggOi!ii5H>LQ% z z?@w!=>8c4j1;Cd(M%S#74ED`e{J(^GtM=o68#1SWvL`_M1TM_0RMdgL>&`XOB%zaF zX^JI?XV%Mz-ZE@93f{(!`ML2Md4lArFPP=G=9KRWWBBDn=)ZP-Rc1#H|3YBIvpox3 zLHsa(B3fHmzrmi*AIF_I}C6A55rvm?(H8on~aDUfwVn(V(>}b_XE@ zNVw@RPCG<{l7HE>H-k0?N_u`V_e3PDDBL*CJ9>xIktM2V>kmACfksnWVqA(m>tA_^tsF3kAX^ecM%IEW<;5R~?89_G|5_wk}4!xNg0XPm3SSDLp@E_Ax$tr^mRgnrEot9Z$ z9M?BD2gK!!NU4Y11qCnNLWxru2e0{TV(T>t(8jNFkju$&3YRgo@C>}+S(zv8l4`3^0NsVGRUKNG_2 zNG?GNVB!}Y|DlC9qITo2yL;R<)c@wnaF2s`>daT;E@SaEa>c^BmMgIiW6d` zs^FsaUr547SUP6ANSC&i);!_JW>st&PWQ3p>ByEy_we>PeyptLl4FC3I#|SX0af#QE45RWk6ke zZL8xiOdQayY#g(M4ey^7uVis8E};wHv@)S%Z}*ARwNW-!Up$C`L)FA)*nv-?A9Mus z#1E~ZL)X=w@Nuh|YDQjQbOnAzK}@Am^ctbAvGa^NmfBXv3w4BlprmKgML9y=_8=XK z^7rG2MERav?~E9{I!#)A+mqj`(V)LX1IeniLhgR#a7pYCnj+bZxmc2kB4@RGD35f; zys$kBTBSr^2nos^kLUYf&hJ?uj?%hguu&*@mVdQO{|tzdK0+tuP< zlivKrWrD_6DA+S{w(Cc?JiRfkARa4)pww%x-^@?)tOoV3wz-tErDAbqlT0KsdWU@K zXnMnHq$7Sy3MPU;{(etl2oy+_x+j+nXQ-H2*>D};+Wm)raSv@VRq`KxMexC>tBq*f zjk;BNX+3d~85-{S<9wcw2 zFqTHMjqowdJEP=2(=fjU1eQCqP+oOQk^O=RFH#m|T)%}Z?1HPCRjDEcrAVK1$1o;3 zel7RGcICW(Y_dccH8|ImvLrzJQ%AI1iwD9sZ47XkbH9-wWQZNWj%XF~uFDVf!x!un z-`phb7t(yT8c0)r8XE07j$O^pOdr=Kzw>+2Flhc_yjR)VN@Y9$G^=ID_nA^%-D7OM zi4zMRcNO>66dB8ja2MwCu7&Nd6*#q9HBj7{%~z6t!3;jVqdI?+e}pTvoq-Km&|Br{ zULDSz$_u@+S7r#0ldoT-^=Uv~E%8o))gWQcSZG)1qSpBsSCwbF+e7(B-=O{6-8Y)hlcM`rLvLL?H;cZrV?hNe?H>=o^QO}NwYBWjK19eOzE*(E)$-BIV&bqBx& zT2TshZ~!{7k0|;jn^QLgSvkqKH)iQnnOozcopsq>!1t>5AGFI8Ng$b(47F66@w)}R z;GecGpfV;siY0`NseA}w`#aw%LDgL$e7*}WtPk`iqgBv6!8=MkGV7#c3jV@DAYtx* zr7LU6qi2^8iPAz#rJV~2ZLA!)xDIc<#`4BaW=nXI<*N~IJxSaF0mi@$%gq)_{K)Z; zvC53;DAP0T8K)anIBZ>e*4q=`*^QA*!5&U%t2 zSD*1gFS-IvW+Jgc??h-KGlE9^?VEdlG;Joc3DT|ri+Z95g#w?}rUA0VE_;~F>8P3j z19j1WpR?pKFr|Hc;oi_zqs`+_TC(ond-mSNQL%g%j2P)2YnNcW&&|_I|9=-!RxB-m zvJB9VbedMC7INU8*E6m(oTAKO;I`>F3!u|d3Xj<|$(A#JPR&>bj#S-3+(oR1~ET{??3sT%) zHTQsYPB}UM2Z4-T_D(?vwL3d#KS|36w&fol-jc6T;yh)j?k@yPnZ#jpILcd3D}gdg z)T|78aQwDE7RTOa4;y_c8qLLjj*Urr`|r4Ji4JGc#B!dy8e;tOU5IHUl55~cpx85{nE#W1JP^xMsC)g2 zxhREg^p*g?ESzYk>hC3rn?^ui7HXidCU{=(3Cvi2)}8!$&!`hp%U-rF0qRX{_HEwT zXQRq2=X5`=XIYr_`3Vs<{v3lsRw zFANAm-AHj1eOfmUXTS&ou(fXd<78g&tp z$mpgm7H8)xCmijXjg`opau5d=N&~kigGR4X)EP@w?hF;AZdWLO@(YM2msn-gdi1Wj zlI+jO64=W$S_RcZc(NzT&hCmT!#2~Kc#;I3)b33^T>!JQ1+0>=*Ot{2gyPusAaN4P zEt0!veTSf=Dm&IfX@(daMcnW}i!wO^RF$e^+8`~L6hdPM4T*>Q23O3rEXOjRq__nA zn>?Wcmj-rBAm4)`_zpS$l!SvDP)h*@KL7#%4gfrjcUG+bzqRWN0025qkr-8f@kbAZrIlV+*LwgE zaqkuAn-IgLtv6q`P z;c`p;2udf(R$JnaI!{Pw;nZ9*?prWzD<{E8V^1=vU0$e|W~Rtr02qc>3(d|!;i&11 zYN}j}7#723smPnNE?UVUrHrcW5?B8^Mjg7v4g>2Ip*6yCsh!g|Lcci3!}Z5na35(om0-|V*J;W{7Vs#Q z%#K4(p4$uOPf;-}Z26g$O@8Oo&HoX3-J+9fBgOO#i|0^r5sQC^i?px zqU%QAZS}SaD_V>s4IPv-C?Iu)3JzV*}009{pPG}{~f0%M8KE_lwm-D7l7jJ)BkkERqFJG`bD>=18#m`>Dx z6neTA2t+Xl*uh+dIyMqV)4geX@!+QM#NEh@bU7mHF#1Ci|1gV^62N(m+RefE?QJVu z^+eD_H9U5x(~HH4&82>2RFRyCo;+Y(ENf<3i(w5RAQ$vR$ssW8i@JB#Z>jxyUU(ZH zW|F?ZQ^UIwQsQlhuZ*0>FL*xCMv@JGxU3lj?A@YgbJFIdo!`HwZ~N@|R(YzmFEwZ6 zMVd1Z8Eq|M0Iu(^FiKc#(wUv|)MQtNWjbZt21T0|8n8GX&VKL z?=8X{yqg$=)8W-aB)kZ>hV^xSG)LWR9J8CAJtIJjBM1CjL7JQeo`$uE*p>HARssO) zp75s{rI(U4CvskEdh^rG=(#_^>maQwZ9!m~5huZ-!zcq@8vW?ni0O^J*ppPdZAw_2 zO((z~dlO%x*bWjil38eznH70rjxW^1jnp?g4ulD^knB8S*Aa6b)T9QxF}J2fk~~>Zq4Z)qfRVsIAGVmRy zyo##G2=JZKVZMd4ltWNavD03nuEcWsuTA5=QrTpB{KIn4=G{NNZZ>|$Dj>Uu({w>A zjb@=wGxFSuPB`6v9)wo#F*xykvE!ok`G3oS7WqO6Ve6PJf>wTiwo9)KmZGy!*N$}j zBmE67p@5OWmBu;E=EE1b%#>^~q>H-wSiZi@89E3#26S2;52|M+H5~BPU)l%4q`5Qx zR1=^WGBeSNye+hw*&!15WO=;3dd!UPZ>q+|u-q8Knj6MEaqm7r`tixa1haF$Fc1H{ zsFTMhZ`zf5eFiRnf7QT*86Zv?Gw+({=nFA3e`s9J>APHz6Gjf>4@DcaIo#kQulCLC z5Z`2a@6j1n7B{cld4PG*yFOL&0xUTpgOU5p0JNyq?;o)vPWon)F1T-z4eZAHLeo6q zYb1voYO0khA5vql!lxd2Vp77LK;?jXwIsHCIY8L)tx)mZ z5Xj_hjd+58IYt4_OQFwL1n7+W)I|K*VR$W*Ca8B&BmDm5yDj%NfvvZ3Lv6F4O!&Up%dWZ#s@t|-zi@uxpPkSH`0NI3z2IEGu|+Lb;O*Qb(kXdQl-x3f7C zAckk~uq#ppNx8y@ht#2fym>5?KNFjnJ_9h?<0b6~hDd%t9fUxJ1wjuypm^}zm5h-F zdTUJTQUfkhQf_}~dv=-7Q=>m*VN=TXQ!urivjoTuqJ1+kwaB6>Plv#N`3>ham%&yn zYIqTU?l?h()I}Rq3=jU#lZd6N9^P?(IUB8_zt&zrNLApeNitfg*uj10Dc9s|6j-DI z6c-=tsD4$JRIi+l7m`qW7TOl^EApc0R)D5P#M4H}-rh-12aWz6tK2HbV@Sj7q+rHt z+20mx5F)DZ0q6#}@|CF?eu_Sga}2Yk;Glnh;&fJuSw!2AAt@V7?L+XY&Cti--?q4j z385)R=@NzkCmoy@1>%EI0eit#7ELdTEsKR_VG=UL^2q)U^Su@q$-> z$`0Wov0tOo0OIG5g=p^^|3120R84PW>u1xdLQW_s-_D!QO6)OYcSdYU3H4+ z`{;5KP)h*k9w?I!^!qB>(^b000000001!0S-I{E(`zw F003#d{7(P? diff --git a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol index 08d0eb3a59..279ac627e7 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ abstract contract Target{ function f() public virtual returns(uint); + function g() public virtual returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol-0.6.11.zip b/tests/e2e/detectors/test_data/unused-return/0.6.11/unused_return.sol-0.6.11.zip index 5f04b6a004272faa5ec877d604f9918a52156b31..30ae730404a451514b5337af4a27929e64888887 100644 GIT binary patch delta 3429 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 H00000t{9gJ delta 2995 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 pP)h*w0LM;~g$+pt!wUca005Zqy5ax; diff --git a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol index 08d0eb3a59..279ac627e7 100644 --- a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol +++ b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol @@ -8,6 +8,7 @@ library SafeMath{ abstract contract Target{ function f() public virtual returns(uint); + function g() public virtual returns(uint, uint); } contract User{ @@ -26,5 +27,12 @@ contract User{ // As the value returned by the call is stored // (unused local variable should be another issue) uint b = a.add(1); + + t.g(); + + (uint c, uint d) = t.g(); + + // Detected as unused return + (uint e,) = t.g(); } } diff --git a/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol-0.7.6.zip b/tests/e2e/detectors/test_data/unused-return/0.7.6/unused_return.sol-0.7.6.zip index ac668ccc923fd53f8f875d8ab49578e6bf687e0a..08ecd82e6a2d57b269fc16e1d584da2977283575 100644 GIT binary patch delta 3353 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 delta 2917 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 POOrYcNd|Tc00000CghU@ From 34f0e671f552aa398a5ac6b42212959a6f063dfd Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Wed, 26 Apr 2023 15:21:46 -0500 Subject: [PATCH 53/91] update super-linter org --- .github/workflows/black.yml | 2 +- .github/workflows/linter.yml | 2 +- .github/workflows/pylint.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 1730f43347..df51a3ddf2 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -42,7 +42,7 @@ jobs: cp pyproject.toml .github/linters - name: Black - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # run linter on everything to catch preexisting problems diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index bc9177802b..f972cbcd16 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -43,7 +43,7 @@ jobs: cp pyproject.toml .github/linters - name: Lint everything else - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # run linter on everything to catch preexisting problems diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 06958a10d3..983c176a9a 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -37,7 +37,7 @@ jobs: cp pyproject.toml .github/linters - name: Pylint - uses: github/super-linter/slim@v4.9.2 + uses: super-linter/super-linter/slim@v4.9.2 if: always() env: # Run linters only on new files for pylint to speed up the CI From e51cee61b37127921de14ef456ac4e92bf415dac Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 27 Apr 2023 14:45:52 +0200 Subject: [PATCH 54/91] Add test --- tests/e2e/solc_parsing/test_ast_parsing.py | 1 + .../negate-unary-element.sol-0.8.16-compact.zip | Bin 0 -> 3106 bytes .../negate-unary-element.sol-0.8.16-compact.json | 5 +++++ .../test_data/negate-unary-element.sol | 5 +++++ 4 files changed, 11 insertions(+) create mode 100644 tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip create mode 100644 tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json create mode 100644 tests/e2e/solc_parsing/test_data/negate-unary-element.sol diff --git a/tests/e2e/solc_parsing/test_ast_parsing.py b/tests/e2e/solc_parsing/test_ast_parsing.py index 78aa8a2914..f038e0d0a0 100644 --- a/tests/e2e/solc_parsing/test_ast_parsing.py +++ b/tests/e2e/solc_parsing/test_ast_parsing.py @@ -451,6 +451,7 @@ def make_version(minor: int, patch_min: int, patch_max: int) -> List[str]: Test("yul-top-level-0.8.0.sol", ["0.8.0"]), Test("complex_imports/import_aliases_issue_1319/test.sol", ["0.5.12"]), Test("yul-state-constant-access.sol", ["0.8.16"]), + Test("negate-unary-element.sol", ["0.8.16"]), ] # create the output folder if needed try: diff --git a/tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/negate-unary-element.sol-0.8.16-compact.zip new file mode 100644 index 0000000000000000000000000000000000000000..c18e5091b01d8c4902065e03e68dfeb4563f1b36 GIT binary patch literal 3106 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json new file mode 100644 index 0000000000..8381c16f7b --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/expected/negate-unary-element.sol-0.8.16-compact.json @@ -0,0 +1,5 @@ +{ + "T": { + "a(int256[])": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: RETURN 1\n\"];\n}\n" + } +} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/negate-unary-element.sol b/tests/e2e/solc_parsing/test_data/negate-unary-element.sol new file mode 100644 index 0000000000..b3f03c48d7 --- /dev/null +++ b/tests/e2e/solc_parsing/test_data/negate-unary-element.sol @@ -0,0 +1,5 @@ +contract T { + function a(int256[] memory data) public returns(int256) { + return -data[0]; + } +} \ No newline at end of file From eaf5cb723d5a26d9645609406adc7caeab42a403 Mon Sep 17 00:00:00 2001 From: Will Fey Date: Sat, 22 Apr 2023 15:34:31 -0600 Subject: [PATCH 55/91] Catch AssertionError and log context and raise again while parsing partial fix of #1853 Opened PR per request in #1854 AssertionError with stack trace can occur while parsing contracts that provides no context to what was parsed that threw the error as described in #1853. This change catches this error, logs additional context, and then throws the error again. An example of the logging from code I am working on: ``` $ slither . ... Compiler run successful ERROR:SlitherSolcParsing: Failed to parse MyERC20Controller.constructor (contracts/MyERC20Controller.sol#19-25): (tokenX,tokenY) = IMyFactoryCallback(msg.sender).tokens() (success,data) = msg.sender.delegatecall(abi.encodeWithSelector(IMyFactoryCallback.newTokens.selector,tokenX,tokenY)) require(bool,string)(success,Factory new tokens failed) _tokens = abi.decode(data,(IMyERC20[6])) Traceback (most recent call last): File "~/slither/slither/__main__.py", line 810, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) File "~/slither/slither/__main__.py", line 101, in process_all ... ``` Logging should make it easier for further issues from users to be easily understood and if necessary included in a bug report. --- slither/solc_parsing/slither_compilation_unit_solc.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/slither/solc_parsing/slither_compilation_unit_solc.py b/slither/solc_parsing/slither_compilation_unit_solc.py index cb94a7d9e4..fa38adc0ec 100644 --- a/slither/solc_parsing/slither_compilation_unit_solc.py +++ b/slither/solc_parsing/slither_compilation_unit_solc.py @@ -742,6 +742,13 @@ def _convert_to_slithir(self) -> None: self._underlying_contract_to_parser[contract].log_incorrect_parsing( f"Impossible to generate IR for {contract.name}.{func.name} ({func.source_mapping}):\n {e}" ) + except AssertionError as e: + func_expressions = "\n".join([f'\t{ex}' for ex in func.expressions]) + logger.error( + f"\nFailed to parse {contract.name}.{func.name} ({func.source_mapping}):\n " + f"{func_expressions}") + raise e + contract.convert_expression_to_slithir_ssa() From a4589b07696cc2bcb503dfd87454223caf735ec6 Mon Sep 17 00:00:00 2001 From: Will Fey Date: Thu, 27 Apr 2023 21:30:36 -0600 Subject: [PATCH 56/91] ran black to fix check --- slither/solc_parsing/slither_compilation_unit_solc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/slither/solc_parsing/slither_compilation_unit_solc.py b/slither/solc_parsing/slither_compilation_unit_solc.py index fa38adc0ec..aa4f888901 100644 --- a/slither/solc_parsing/slither_compilation_unit_solc.py +++ b/slither/solc_parsing/slither_compilation_unit_solc.py @@ -743,13 +743,13 @@ def _convert_to_slithir(self) -> None: f"Impossible to generate IR for {contract.name}.{func.name} ({func.source_mapping}):\n {e}" ) except AssertionError as e: - func_expressions = "\n".join([f'\t{ex}' for ex in func.expressions]) + func_expressions = "\n".join([f"\t{ex}" for ex in func.expressions]) logger.error( f"\nFailed to parse {contract.name}.{func.name} ({func.source_mapping}):\n " - f"{func_expressions}") + f"{func_expressions}" + ) raise e - contract.convert_expression_to_slithir_ssa() for func in self._compilation_unit.functions_top_level: From 4f676309902a9e144bd75af1fa1db0770f0b9ec2 Mon Sep 17 00:00:00 2001 From: bart1e Date: Thu, 9 Feb 2023 19:39:58 +0100 Subject: [PATCH 57/91] Detector for incorrect using-for at the top level added --- slither/detectors/all_detectors.py | 1 + .../statements/incorrect_using_for.py | 200 ++++++++++++++++++ .../0.8.17/IncorrectUsingForTopLevel.sol | 94 ++++++++ ...TopLevel.sol.0.8.17.IncorrectUsingFor.json | 124 +++++++++++ tests/e2e/detectors/test_detectors.py | 5 + 5 files changed, 424 insertions(+) create mode 100644 slither/detectors/statements/incorrect_using_for.py create mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol create mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 9722b87937..21374a38bf 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,3 +89,4 @@ from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity +from .statements.incorrect_using_for import IncorrectUsingFor \ No newline at end of file diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py new file mode 100644 index 0000000000..7cc18deafa --- /dev/null +++ b/slither/detectors/statements/incorrect_using_for.py @@ -0,0 +1,200 @@ +from slither.core.declarations import Contract, Structure, Enum +from slither.core.declarations.using_for_top_level import UsingForTopLevel +from slither.core.solidity_types import ( + UserDefinedType, + Type, + ElementaryType, + TypeAlias, + MappingType, + ArrayType, +) +from slither.core.solidity_types.elementary_type import Uint, Int, Byte +from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification + + +class IncorrectUsingFor(AbstractDetector): + """ + Detector for incorrect using-for statement usage. + """ + + ARGUMENT = "incorrect-using-for" + HELP = "Detects using-for statement usage when no function from a given library matches a given type" + IMPACT = DetectorClassification.INFORMATIONAL + CONFIDENCE = DetectorClassification.HIGH + + WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-using-for-usage" + + WIKI_TITLE = "Incorrect usage of using-for statement" + WIKI_DESCRIPTION = "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " \ + "(`using for `). However, the Solidity compiler doesn't check whether a given " \ + "library has at least one function matching a given type. If it doesn't, such a statement has " \ + "no effect and may be confusing. " + + # region wiki_exploit_scenario + WIKI_EXPLOIT_SCENARIO = """ + ```solidity + library L { + function f(bool) public pure {} + } + + using L for uint; + ``` + Such a code will compile despite the fact that `L` has no function with `uint` as its first argument.""" + # endregion wiki_exploit_scenario + WIKI_RECOMMENDATION = "Make sure that the libraries used in `using-for` statements have at least one function " \ + "matching a type used in these statements. " + + @staticmethod + def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: + """ + Returns True if contract1 may be implicitly converted to contract2. + """ + return contract1 == contract2 or contract2 in contract1.inheritance + + @staticmethod + def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both uints. + """ + assert type1.type in Uint and type2.type in Uint + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both ints. + """ + assert type1.type in Int and type2.type in Int + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_addresses( + type1: ElementaryType, type2: ElementaryType + ) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. + """ + assert type1.type == "address" and type2.type == "address" + # payable attribute to be implemented; for now, always return True + return True + + @staticmethod + def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. + """ + assert type1.type in Byte and type2.type in Byte + + return type1.size <= type2.size + + @staticmethod + def _implicitly_convertible_to_for_elementary_types( + type1: ElementaryType, type2: ElementaryType + ) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if type1.type == "bool" and type2.type == "bool": + return True + if type1.type == "string" and type2.type == "string": + return True + if type1.type == "bytes" and type2.type == "bytes": + return True + if type1.type == "address" and type2.type == "address": + return IncorrectUsingFor._implicitly_convertible_to_for_addresses(type1, type2) + if type1.type in Uint and type2.type in Uint: + return IncorrectUsingFor._implicitly_convertible_to_for_uints(type1, type2) + if type1.type in Int and type2.type in Int: + return IncorrectUsingFor._implicitly_convertible_to_for_ints(type1, type2) + if ( + type1.type != "bytes" + and type2.type != "bytes" + and type1.type in Byte + and type2.type in Byte + ): + return IncorrectUsingFor._implicitly_convertible_to_for_bytes(type1, type2) + return False + + @staticmethod + def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return type1.type_from == type2.type_from and type1.type_to == type2.type_to + + @staticmethod + def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return IncorrectUsingFor._implicitly_convertible_to(type1.type, type2.type) + + @staticmethod + def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): + if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): + return type1.type == type2.type + return False + + if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): + if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): + return IncorrectUsingFor._implicitly_convertible_to_for_contracts( + type1.type, type2.type + ) + + if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): + return IncorrectUsingFor._implicitly_convertible_to_for_elementary_types(type1, type2) + + if isinstance(type1, MappingType) and isinstance(type2, MappingType): + return IncorrectUsingFor._implicitly_convertible_to_for_mappings(type1, type2) + + if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): + return IncorrectUsingFor._implicitly_convertible_to_for_arrays(type1, type2) + + return False + + @staticmethod + def _is_correctly_used(type_: Type, library: Contract) -> bool: + """ + Checks if a `using library for type_` statement is used correctly (that is, does library contain any function + with type_ as the first argument). + """ + for f in library.functions: + if len(f.parameters) == 0: + continue + if not IncorrectUsingFor._implicitly_convertible_to(type_, f.parameters[0].type): + continue + return True + return False + + def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): + info = f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " \ + f"{library}.\n" + res = self.generate_result(info) + results.append(res) + + def _detect(self): + results = [] + + for uf in self.compilation_unit.using_for_top_level: + # UsingForTopLevel.using_for is a dict with a single entry, which is mapped to a list of functions/libraries + # the following code extracts the type from using-for and skips using-for statements with functions + type_ = list(uf.using_for.keys())[0] + for lib_or_fcn in uf.using_for[type_]: + # checking for using-for with functions is already performed by the compiler; we only consider libraries + if isinstance(lib_or_fcn, UserDefinedType): + if not self._is_correctly_used(type_, lib_or_fcn.type): + self._append_result(results, uf, type_, lib_or_fcn.type) + + return results diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol new file mode 100644 index 0000000000..5b173e7b53 --- /dev/null +++ b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol @@ -0,0 +1,94 @@ +pragma solidity 0.8.17; + +struct S1 +{ + uint __; +} + +struct S2 +{ + uint128 __; +} + +enum E1 +{ + A, + B +} + +enum E2 +{ + A, + B +} + +contract C0 +{ + +} + +contract C1 is C0 +{ + +} + +contract C2 is C1 +{ + +} + +contract C3 +{ + +} + +type custom_uint is uint248; +type custom_int is int248; + +library L +{ + function f0(C0) public pure {} + function f1(bool) public pure {} + function f2(string memory) public pure {} + function f3(bytes memory) public pure {} + function f4(uint248) public pure {} + function f5(int248) public pure {} + function f6(address) public pure {} + function f7(bytes17) public pure {} + function f8(S1 memory) public pure {} + function f9(E1) public pure {} + function f10(mapping(int => uint) storage) public pure {} + function f11(string[] memory) public pure {} + function f12(bytes[][][] memory) public pure {} + function f13(custom_uint) public pure {} +} + +// the following statements are correct +using L for C2; +using L for bool; +using L for string; +using L for bytes; +using L for uint240; +using L for int16; +using L for address; +using L for bytes16; +using L for S1; +using L for E1; +using L for mapping(int => uint); +using L for string[]; +using L for bytes[][][]; +using L for custom_uint; + +// the following statements are incorrect +using L for C3; +using L for bytes17[]; +using L for uint; +using L for int; +using L for bytes18; +using L for S2; +using L for E2; +using L for mapping(int => uint128); +using L for mapping(int128 => uint); +using L for string[][]; +using L for bytes[][]; +using L for custom_int; diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json new file mode 100644 index 0000000000..9321baa9c6 --- /dev/null +++ b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json @@ -0,0 +1,124 @@ +[ + [ + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", + "first_markdown_element": "", + "id": "000067f9a866a9e43f9c82b9b70b3a7657545318fb4d3334b39f03e47b63e50a", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", + "first_markdown_element": "", + "id": "09b0f0c08a3f0fe4ee75eff34f9c4718a5f729814eda9fa21c2ba30a01e1de0e", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", + "first_markdown_element": "", + "id": "1a051922964f790736e90754dfebf381c6e078f957ab8e7eeedf9d79ef9d56e5", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", + "first_markdown_element": "", + "id": "3b1d94dc870c0f03b4f43b34b6278adf6669b9e30e245ae21247d3839445366c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", + "first_markdown_element": "", + "id": "6d993d086c6d6fb8cd005acd124d7d165b38e85cc23d781a8c99d9efd0d2c25a", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", + "first_markdown_element": "", + "id": "6e785ac39c18c840fc9f46fc066670776551a98bfd8d2030ee523a0c55bf5eef", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", + "first_markdown_element": "", + "id": "90efff9103e8469dcd2d251f27bea0ab6875f0f511fe8aedc093532cb4a52aa5", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", + "first_markdown_element": "", + "id": "a36393040b3e588bbfb6ff945333997a967bc50e1f9d703be020a1786514fb12", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", + "first_markdown_element": "", + "id": "c8be02cb293bf4e4b5bbe3def377356d8761ed34c2bc3259f7073e7840eec6c6", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", + "first_markdown_element": "", + "id": "e6abc32f0e370622f8a17cbc5eb94340b78931210ef47269e39e683cc03a34d3", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", + "first_markdown_element": "", + "id": "eec4404d65776c62a3053ef34081ca8cfdc4c32c571e543c337c5af1a0c11c9c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + }, + { + "elements": [], + "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", + "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", + "first_markdown_element": "", + "id": "f5cb90eb9284eb3935980052fc2ad410058acafa4478ebd3109cc9520510095c", + "check": "incorrect-using-for", + "impact": "Informational", + "confidence": "High" + } + ] +] \ No newline at end of file diff --git a/tests/e2e/detectors/test_detectors.py b/tests/e2e/detectors/test_detectors.py index e6b87d530a..2088ac2148 100644 --- a/tests/e2e/detectors/test_detectors.py +++ b/tests/e2e/detectors/test_detectors.py @@ -1639,6 +1639,11 @@ def id_test(test_item: Test): "LowCyclomaticComplexity.sol", "0.8.16", ), + Test( + all_detectors.IncorrectUsingFor, + "IncorrectUsingForTopLevel.sol", + "0.8.17", + ), ] GENERIC_PATH = "/GENERIC_PATH" From 5a450a07e04626f590ac303aba47db72cfea9c3b Mon Sep 17 00:00:00 2001 From: bart1e Date: Thu, 9 Feb 2023 20:03:36 +0100 Subject: [PATCH 58/91] Black run --- .../statements/incorrect_using_for.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py index 7cc18deafa..4df0701a2e 100644 --- a/slither/detectors/statements/incorrect_using_for.py +++ b/slither/detectors/statements/incorrect_using_for.py @@ -25,10 +25,12 @@ class IncorrectUsingFor(AbstractDetector): WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-using-for-usage" WIKI_TITLE = "Incorrect usage of using-for statement" - WIKI_DESCRIPTION = "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " \ - "(`using for `). However, the Solidity compiler doesn't check whether a given " \ - "library has at least one function matching a given type. If it doesn't, such a statement has " \ - "no effect and may be confusing. " + WIKI_DESCRIPTION = ( + "In Solidity, it is possible to use libraries for certain types, by the `using-for` statement " + "(`using for `). However, the Solidity compiler doesn't check whether a given " + "library has at least one function matching a given type. If it doesn't, such a statement has " + "no effect and may be confusing. " + ) # region wiki_exploit_scenario WIKI_EXPLOIT_SCENARIO = """ @@ -41,8 +43,10 @@ class IncorrectUsingFor(AbstractDetector): ``` Such a code will compile despite the fact that `L` has no function with `uint` as its first argument.""" # endregion wiki_exploit_scenario - WIKI_RECOMMENDATION = "Make sure that the libraries used in `using-for` statements have at least one function " \ - "matching a type used in these statements. " + WIKI_RECOMMENDATION = ( + "Make sure that the libraries used in `using-for` statements have at least one function " + "matching a type used in these statements. " + ) @staticmethod def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: @@ -179,8 +183,10 @@ def _is_correctly_used(type_: Type, library: Contract) -> bool: return False def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): - info = f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " \ - f"{library}.\n" + info = ( + f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " + f"{library}.\n" + ) res = self.generate_result(info) results.append(res) From 32d4bba9efaaffa72b36bca448e0fce2c01b0abd Mon Sep 17 00:00:00 2001 From: bart1e Date: Wed, 3 May 2023 18:01:22 +0200 Subject: [PATCH 59/91] Tests updated --- slither/detectors/all_detectors.py | 2 +- ...TopLevel.sol.0.8.17.IncorrectUsingFor.json | 124 ------------------ ..._8_17_IncorrectUsingForTopLevel_sol__0.txt | 24 ++++ .../0.8.17/IncorrectUsingForTopLevel.sol | 0 .../IncorrectUsingForTopLevel.sol-0.8.17.zip | Bin 0 -> 10081 bytes 5 files changed, 25 insertions(+), 125 deletions(-) delete mode 100644 tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt rename tests/{detectors => e2e/detectors/test_data}/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol (100%) create mode 100644 tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 21374a38bf..324c97052a 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -89,4 +89,4 @@ from .functions.permit_domain_signature_collision import DomainSeparatorCollision from .functions.codex import Codex from .functions.cyclomatic_complexity import CyclomaticComplexity -from .statements.incorrect_using_for import IncorrectUsingFor \ No newline at end of file +from .statements.incorrect_using_for import IncorrectUsingFor diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json b/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json deleted file mode 100644 index 9321baa9c6..0000000000 --- a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol.0.8.17.IncorrectUsingFor.json +++ /dev/null @@ -1,124 +0,0 @@ -[ - [ - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L.\n", - "first_markdown_element": "", - "id": "000067f9a866a9e43f9c82b9b70b3a7657545318fb4d3334b39f03e47b63e50a", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L.\n", - "first_markdown_element": "", - "id": "09b0f0c08a3f0fe4ee75eff34f9c4718a5f729814eda9fa21c2ba30a01e1de0e", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L.\n", - "first_markdown_element": "", - "id": "1a051922964f790736e90754dfebf381c6e078f957ab8e7eeedf9d79ef9d56e5", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L.\n", - "first_markdown_element": "", - "id": "3b1d94dc870c0f03b4f43b34b6278adf6669b9e30e245ae21247d3839445366c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L.\n", - "first_markdown_element": "", - "id": "6d993d086c6d6fb8cd005acd124d7d165b38e85cc23d781a8c99d9efd0d2c25a", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L.\n", - "first_markdown_element": "", - "id": "6e785ac39c18c840fc9f46fc066670776551a98bfd8d2030ee523a0c55bf5eef", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L.\n", - "first_markdown_element": "", - "id": "90efff9103e8469dcd2d251f27bea0ab6875f0f511fe8aedc093532cb4a52aa5", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L.\n", - "first_markdown_element": "", - "id": "a36393040b3e588bbfb6ff945333997a967bc50e1f9d703be020a1786514fb12", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L.\n", - "first_markdown_element": "", - "id": "c8be02cb293bf4e4b5bbe3def377356d8761ed34c2bc3259f7073e7840eec6c6", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L.\n", - "first_markdown_element": "", - "id": "e6abc32f0e370622f8a17cbc5eb94340b78931210ef47269e39e683cc03a34d3", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L.\n", - "first_markdown_element": "", - "id": "eec4404d65776c62a3053ef34081ca8cfdc4c32c571e543c337c5af1a0c11c9c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - }, - { - "elements": [], - "description": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", - "markdown": "using-for statement at tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L.\n", - "first_markdown_element": "", - "id": "f5cb90eb9284eb3935980052fc2ad410058acafa4478ebd3109cc9520510095c", - "check": "incorrect-using-for", - "impact": "Informational", - "confidence": "High" - } - ] -] \ No newline at end of file diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt new file mode 100644 index 0000000000..4a85bca5fc --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt @@ -0,0 +1,24 @@ +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L. + +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L. + diff --git a/tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol b/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol similarity index 100% rename from tests/detectors/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol rename to tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol diff --git a/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip b/tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol-0.8.17.zip new file mode 100644 index 0000000000000000000000000000000000000000..9afc56d39e442ef3a41f3541db7a05857656332c GIT binary patch literal 10081 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 Date: Thu, 4 May 2023 10:14:25 -0500 Subject: [PATCH 60/91] update pip audit action to pypa and bump version --- .github/workflows/pip-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index e334ff4feb..20367787da 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -34,6 +34,6 @@ jobs: python -m pip install . - name: Run pip-audit - uses: trailofbits/gh-action-pip-audit@v0.0.4 + uses: pypa/gh-action-pip-audit@v1.0.7 with: virtual-environment: /tmp/pip-audit-env From 2d65116392d6152e6c747012ddc51d9099975d71 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 21:45:13 -0500 Subject: [PATCH 61/91] reduce false positives for incorrect-equality on struct fields --- slither/core/declarations/custom_error.py | 4 +-- .../statements/incorrect_strict_equality.py | 14 ++++++---- slither/utils/type.py | 14 ++++++++++ .../0.7.6/incorrect_equality.sol | 24 ++++++++++++++++++ .../0.7.6/incorrect_equality.sol-0.7.6.zip | Bin 8237 -> 10221 bytes 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index 7e78748c60..8ed943d942 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -1,8 +1,8 @@ from typing import List, TYPE_CHECKING, Optional, Type -from slither.core.solidity_types import UserDefinedType from slither.core.source_mapping.source_mapping import SourceMapping from slither.core.variables.local_variable import LocalVariable +from slither.utils.type import is_underlying_type_address if TYPE_CHECKING: from slither.core.compilation_unit import SlitherCompilationUnit @@ -46,7 +46,7 @@ def _convert_type_for_solidity_signature(t: Optional[Type]) -> str: # pylint: disable=import-outside-toplevel from slither.core.declarations import Contract - if isinstance(t, UserDefinedType) and isinstance(t.type, Contract): + if is_underlying_type_address(t): return "address" return str(t) diff --git a/slither/detectors/statements/incorrect_strict_equality.py b/slither/detectors/statements/incorrect_strict_equality.py index bd34d61b1a..ae06d7bf3b 100644 --- a/slither/detectors/statements/incorrect_strict_equality.py +++ b/slither/detectors/statements/incorrect_strict_equality.py @@ -31,6 +31,7 @@ from slither.slithir.variables.local_variable import LocalIRVariable from slither.slithir.variables.temporary_ssa import TemporaryVariableSSA from slither.utils.output import Output +from slither.utils.type import is_underlying_type_address class IncorrectStrictEquality(AbstractDetector): @@ -77,8 +78,13 @@ def is_not_comparing_addresses(ir: Binary) -> bool: """ Comparing addresses strictly should not be flagged. """ - addr = ElementaryType("address") - return ir.variable_left.type != addr or ir.variable_right.type != addr + + if is_underlying_type_address(ir.variable_left.type) and is_underlying_type_address( + ir.variable_right.type + ): + return False + + return True @staticmethod def is_any_tainted( @@ -116,7 +122,6 @@ def taint_balance_equalities( ): taints.append(ir.lvalue) if isinstance(ir, HighLevelCall): - # print(ir.function.full_name) if ( isinstance(ir.function, Function) and ir.function.full_name == "balanceOf(address)" @@ -133,7 +138,6 @@ def taint_balance_equalities( if isinstance(ir, Assignment): if ir.rvalue in self.sources_taint: taints.append(ir.lvalue) - return taints # Retrieve all tainted (node, function) pairs @@ -155,10 +159,10 @@ def tainted_equality_nodes( # Filter to only tainted equality (==) comparisons if ( self.is_direct_comparison(ir) + # Filter out address comparisons which may occur due to lack of field sensitivity in data dependency and self.is_not_comparing_addresses(ir) and self.is_any_tainted(ir.used, taints, func) ): - # if func not in results: results[func] = [] results[func].append(node) diff --git a/slither/utils/type.py b/slither/utils/type.py index 1674999aa5..916cf42b57 100644 --- a/slither/utils/type.py +++ b/slither/utils/type.py @@ -197,3 +197,17 @@ def export_return_type_from_variable( return ret return [variable_or_type.type] + + +def is_underlying_type_address(t: "Type") -> bool: + """ + Return true if the underlying type is an address + i.e. if the type is an address or a contract + """ + from slither.core.declarations.contract import Contract + + if t == ElementaryType("address"): + return True + if isinstance(t, UserDefinedType) and isinstance(t.type, Contract): + return True + return False diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol index b2e4c2f142..58b6b593e0 100644 --- a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol +++ b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol @@ -134,3 +134,27 @@ contract TestSolidityKeyword{ } +interface Receiver { + +} +contract A { + mapping(address => Info) data; + + struct Info { + uint a; + address b; + uint c; + } + function good(address b) public payable { + data[msg.sender] = Info(block.timestamp, b, msg.value); + if (data[msg.sender].b == address(0)) { + payable(msg.sender).transfer(data[msg.sender].c); + } + } + function good2(address b) public payable { + data[msg.sender] = Info(block.timestamp, b, msg.value); + if (Receiver(data[msg.sender].b) == Receiver(address(0))) { + payable(msg.sender).transfer(data[msg.sender].c); + } + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol-0.7.6.zip b/tests/e2e/detectors/test_data/incorrect-equality/0.7.6/incorrect_equality.sol-0.7.6.zip index a7fbdc6b68cb2bde137d455418999079da2d40b7..99de07e26a1870ec4bfdaaa471a8fe3722aa684a 100644 GIT binary patch delta 9990 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 Date: Thu, 4 May 2023 22:01:08 -0500 Subject: [PATCH 62/91] do not detect incorrect-shift when rhs is constant --- .../assembly/shift_parameter_mixup.py | 2 +- ...xup_0_7_6_shift_parameter_mixup_sol__0.txt | 2 +- .../0.7.6/shift_parameter_mixup.sol | 3 ++- .../0.7.6/shift_parameter_mixup.sol-0.7.6.zip | Bin 1468 -> 1557 bytes 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/slither/detectors/assembly/shift_parameter_mixup.py b/slither/detectors/assembly/shift_parameter_mixup.py index a4169499a7..5bfefb4c9c 100644 --- a/slither/detectors/assembly/shift_parameter_mixup.py +++ b/slither/detectors/assembly/shift_parameter_mixup.py @@ -52,7 +52,7 @@ def _check_function(self, f: FunctionContract) -> List[Output]: BinaryType.LEFT_SHIFT, BinaryType.RIGHT_SHIFT, ]: - if isinstance(ir.variable_left, Constant): + if isinstance(ir.variable_left, Constant) and not isinstance(ir.variable_right, Constant): info: DETECTOR_INFO = [ f, " contains an incorrect shift operation: ", diff --git a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt index 08fdbe1c68..1c4206ea0f 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_ShiftParameterMixup_0_7_6_shift_parameter_mixup_sol__0.txt @@ -1,2 +1,2 @@ -C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-7) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5) +C.f() (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#3-8) contains an incorrect shift operation: a = 8 >> a (tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol#5) diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol index 89a9210ad8..11a2af9ae3 100644 --- a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol +++ b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol @@ -1,8 +1,9 @@ contract C { - function f() internal returns (uint a) { + function f() internal returns (uint a, uint b) { assembly { a := shr(a, 8) + b := shl(248, 0xff) } } } \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol-0.7.6.zip b/tests/e2e/detectors/test_data/incorrect-shift/0.7.6/shift_parameter_mixup.sol-0.7.6.zip index 7f833af857b0e8cac358ec9a83882debe1d333dc..e1cce4a17341c1df74817f1d973dffc2c27c7e16 100644 GIT binary patch delta 1239 zcmV;|1StEw3zZBQP)h>@KL7#%4ghDbq*hW?iU3&!006`mu^0sbf7K!=V7QoD1pOUb z;#`h#`LjS|K8Ti2v6Xb+^&SF-rsAN-J}fdQ<4ehp*pt$_!8Rl7wfsJ>uMaKn4`>@Z z)x=k#di^mxeF%4dss_}8dX%CJ8fW)2?60M*%dpX?JCOpS#1mq1pXZAt$#xU?bjN6% zAR82oz?L$Hx}uMhe`aU5Jf8p~Ra^id__c>#XlB6jgtgQn_ZLs>$w)xHB`&YX;xeaq zr@#3D9U8dI-(gY94QRE;M{$1dfBtqZWzgH0yy5ljr)D~;qS_kRy;Pg}|0}bM@B=jzLUaeC^CG4*V9IH~eV-T( zV(5#(w~F56f~035Oh@)=o3YG(yUuYK=!IC%+_<#_#KID(2(M2k`ll-x7ZpgYZar+^ zG~*wM#THJCk3HG1c;YF~^FmQ&D*z2%|1l!oe^@Ubo$-x9|EK}D@-7pJTTb~w(#)r^ z0o1kN3+e57wpj2$yI<;>EFOhHPxA3SV!C1C!99geeEmW=3T&&L2vp8;OrcA)vda+! zpZ(xizHF1)K!sqzRr>~Av^0_U?PU)8I{%xNeBm6-{~Ff!sTSw?w+_m(wIvT$^(xHN ze@n|?oH|TPWP&X1zq7fgsdPup-(!vzi$l6bjMM+i3AQIdTT2bs{9Fp5;18Jlh<_0 zE;*uKvarc~H74YKd8fx;?Qi%$?PZu*y`cT8xx@o~_#6hCZe{TqIY+BWlJII7Ds(?k zsyHBV$|jAFfBbMavQSF_0zU&k00ICG0B5hHR#H@o09ge90K^uPWd%_Nqy+!~003A( BS3dv% delta 1155 zcmV-}1bq9I47>{)P)h>@KL7#%4ggAxcUDg-taJbc005N|001qM&jm1%OVWSTO;SK| zzW27RLDuq%fajjF(oVr2i>rg67g$U?`hvVPUjS}-#^k2c+iH0wnWy*{+EuOVwk8m> zVbb$tf-Ug4%lkTz7(>ZMTBZ&k;F|b3w{~shPKnJW;~y3b#kO?LN-J)_^qVDw1Ve=% zru0P9*Xxndxk4cDU&oq*(nWvqVH?}!flD{6OZSc6Yv<+9T*lXCVCRd9SDPaK33|() zUo(VdWn`ZDfK{FLrGnq?w)Veja*FZToxnIBMNBUGF(G z(L-mv<;*9lUW!#2haumA%kn1rAY4PmF8x-b@{kx zZIznx0x>FX+$1q}DwE@tFBJ~xJRtc#5Wj1FM{|_w*f`oF$h?EjQKf3_5E$r0Nw_Mj z4=_F`r1@+0$>rCUFhqY9Z?s>`5%LA*>hYtVlVr!3RYDUUU+^s8QUt_2;JxfdH2vTC+Qq*v1EI0(7Nj7`l3FHqD}mkb<=*AhCNQydz6x|R@z-^8(lE+y z*kwdhWy64@$w7|AcRF$$Y1e?6X;CadLl2&=_npUS=UcMq?od zxbB>L*H0EK|1LWcry}&lh5wQJsgHeT<6E3|a!Szv3F+}8jE4AdtY`4vzPmz+^a?8g zcv)TD<@K_%7;9TwpP}qKA)7bM;^f+|KI8kE!7vLO7YjU=ngSMtweh5+iVH~Mgg5xu zi#8>Ay0=#JDn5Tv(Fw^jsJ?*rRC!kP9qNt%7`wIDSH|kQ?F;{~g0|1jCByL}QzMly zy|bV^qom6gCrWplhj$ZcD8mUCa-OxWwsYH&T`4ijv5fvqO~aX?q@sM?Hv0HSyzyT+wA zfS|EO>y*;c*HbAwoyD)i0cqT-vb^0IHIrhxd^y*&68*Mo@&W$gF_X+>SH z2?2&LN>YDgje|=r-vhXsT;mTh4eek21Yg~HiwKp0=;)di#MRvrRAY@Xqc>Ak@g-TV zFC>3E$vxbns(rRsW{q$vaX-+cX+u$ Date: Thu, 4 May 2023 22:10:19 -0500 Subject: [PATCH 63/91] lint --- slither/detectors/assembly/shift_parameter_mixup.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slither/detectors/assembly/shift_parameter_mixup.py b/slither/detectors/assembly/shift_parameter_mixup.py index 5bfefb4c9c..1f6a878e2f 100644 --- a/slither/detectors/assembly/shift_parameter_mixup.py +++ b/slither/detectors/assembly/shift_parameter_mixup.py @@ -52,7 +52,9 @@ def _check_function(self, f: FunctionContract) -> List[Output]: BinaryType.LEFT_SHIFT, BinaryType.RIGHT_SHIFT, ]: - if isinstance(ir.variable_left, Constant) and not isinstance(ir.variable_right, Constant): + if isinstance(ir.variable_left, Constant) and not isinstance( + ir.variable_right, Constant + ): info: DETECTOR_INFO = [ f, " contains an incorrect shift operation: ", From 92b2147cbea9ae995325f2b53ab6e4c9aaf89fa1 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 22:11:28 -0500 Subject: [PATCH 64/91] lint --- slither/utils/type.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/utils/type.py b/slither/utils/type.py index 916cf42b57..a6b6402027 100644 --- a/slither/utils/type.py +++ b/slither/utils/type.py @@ -204,6 +204,7 @@ def is_underlying_type_address(t: "Type") -> bool: Return true if the underlying type is an address i.e. if the type is an address or a contract """ + # pylint: disable=import-outside-toplevel from slither.core.declarations.contract import Contract if t == ElementaryType("address"): From abcef3015ad90c76830912965212d2e188b5e848 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 4 May 2023 22:14:28 -0500 Subject: [PATCH 65/91] remove unused import --- slither/core/declarations/custom_error.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/slither/core/declarations/custom_error.py b/slither/core/declarations/custom_error.py index 8ed943d942..234873eaca 100644 --- a/slither/core/declarations/custom_error.py +++ b/slither/core/declarations/custom_error.py @@ -43,9 +43,6 @@ def compilation_unit(self) -> "SlitherCompilationUnit": @staticmethod def _convert_type_for_solidity_signature(t: Optional[Type]) -> str: - # pylint: disable=import-outside-toplevel - from slither.core.declarations import Contract - if is_underlying_type_address(t): return "address" return str(t) From 2002312b9fce061251cf1e6f7b6ec61f1936169f Mon Sep 17 00:00:00 2001 From: daog1 Date: Fri, 5 May 2023 12:39:09 +0800 Subject: [PATCH 66/91] fix abi decode --- slither/tools/read_storage/read_storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/tools/read_storage/read_storage.py b/slither/tools/read_storage/read_storage.py index 387aa619a2..2947081daa 100644 --- a/slither/tools/read_storage/read_storage.py +++ b/slither/tools/read_storage/read_storage.py @@ -441,7 +441,7 @@ def _find_mapping_slot( if "int" in key_type: # without this eth_utils encoding fails key = int(key) key = coerce_type(key_type, key) - slot = keccak(encode([key_type, "uint256"], [key, decode("uint256", slot)])) + slot = keccak(encode([key_type, "uint256"], [key, decode(["uint256"], slot)[0]])) if isinstance(target_variable_type.type_to, UserDefinedType) and isinstance( target_variable_type.type_to.type, Structure From 7fc4d8714c5dbb48a725b3c56799b5bb151924bc Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 5 May 2023 09:56:47 -0500 Subject: [PATCH 67/91] remove modulo binop from `can_be_checked_for_overflow` --- slither/slithir/operations/binary.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slither/slithir/operations/binary.py b/slither/slithir/operations/binary.py index d1355a9652..06eb172a79 100644 --- a/slither/slithir/operations/binary.py +++ b/slither/slithir/operations/binary.py @@ -94,7 +94,6 @@ def can_be_checked_for_overflow(self) -> bool: return self in [ BinaryType.POWER, BinaryType.MULTIPLICATION, - BinaryType.MODULO, BinaryType.ADDITION, BinaryType.SUBTRACTION, BinaryType.DIVISION, From fa8087ab0651acb48e5757390c9be7216cdfa74c Mon Sep 17 00:00:00 2001 From: Simone Date: Sat, 6 May 2023 15:20:57 +0200 Subject: [PATCH 68/91] Parse assembly in modifier --- slither/solc_parsing/declarations/modifier.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slither/solc_parsing/declarations/modifier.py b/slither/solc_parsing/declarations/modifier.py index ea7af00b37..c4c5c71772 100644 --- a/slither/solc_parsing/declarations/modifier.py +++ b/slither/solc_parsing/declarations/modifier.py @@ -87,6 +87,9 @@ def analyze_content(self) -> None: for node in self._node_to_nodesolc.values(): node.analyze_expressions(self) + for yul_parser in self._node_to_yulobject.values(): + yul_parser.analyze_expressions() + self._rewrite_ternary_as_if_else() self._remove_alone_endif() From 6e781e1c58a25c3b38126faa3c526cd3404ac305 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:36:09 -0500 Subject: [PATCH 69/91] update slither-flat test cases, run solc out its output --- examples/flat/a.sol | 10 ++++++++-- examples/flat/b.sol | 13 ++++++++++++- scripts/ci_test_flat.sh | 10 +++++++++- slither/tools/flattening/export/export.py | 2 +- slither/tools/flattening/flattening.py | 2 +- 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/examples/flat/a.sol b/examples/flat/a.sol index d252e04ba9..4fa9c75490 100644 --- a/examples/flat/a.sol +++ b/examples/flat/a.sol @@ -1,3 +1,9 @@ -contract A{ +pragma solidity 0.8.19; -} +error RevertIt(); + +contract Example { + function reverts() external pure { + revert RevertIt(); + } +} \ No newline at end of file diff --git a/examples/flat/b.sol b/examples/flat/b.sol index 74b4d78ce5..edbd902256 100644 --- a/examples/flat/b.sol +++ b/examples/flat/b.sol @@ -1,5 +1,16 @@ import "./a.sol"; -contract B is A{ +pragma solidity 0.8.19; +enum B { + a, + b } + +contract T { + Example e = new Example(); + function b() public returns(uint) { + B b = B.a; + return 4; + } +} \ No newline at end of file diff --git a/scripts/ci_test_flat.sh b/scripts/ci_test_flat.sh index e3a837a035..b47dd510ba 100755 --- a/scripts/ci_test_flat.sh +++ b/scripts/ci_test_flat.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash +shopt -s extglob -### Test slither-prop +### Test slither-flat +solc-select use 0.8.19 --always-install cd examples/flat || exit 1 @@ -8,5 +10,11 @@ if ! slither-flat b.sol; then echo "slither-flat failed" exit 1 fi + +SUFFIX = '@(sol)' +if ! solc "crytic-export/flattening/"*$SUFFIX; then + echo "solc failed on flattened files" + exit 1 +fi exit 0 diff --git a/slither/tools/flattening/export/export.py b/slither/tools/flattening/export/export.py index e9b4552efb..8b8ce73559 100644 --- a/slither/tools/flattening/export/export.py +++ b/slither/tools/flattening/export/export.py @@ -15,7 +15,7 @@ Export = namedtuple("Export", ["filename", "content"]) -logger = logging.getLogger("Slither") +logger = logging.getLogger("Slither-flat") def save_to_zip(files: List[Export], zip_filename: str, zip_type: str = "lzma"): diff --git a/slither/tools/flattening/flattening.py b/slither/tools/flattening/flattening.py index 7603f5e933..55e1af21d3 100644 --- a/slither/tools/flattening/flattening.py +++ b/slither/tools/flattening/flattening.py @@ -24,7 +24,7 @@ save_to_disk, ) -logger = logging.getLogger("Slither-flattening") +logger = logging.getLogger("Slither-flat") logger.setLevel(logging.INFO) # index: where to start From 6e08172e8bcf8973dbf4ec7810a14c1b0851d754 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:46:52 -0500 Subject: [PATCH 70/91] lint bash --- scripts/ci_test_flat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci_test_flat.sh b/scripts/ci_test_flat.sh index b47dd510ba..0d9185171e 100755 --- a/scripts/ci_test_flat.sh +++ b/scripts/ci_test_flat.sh @@ -11,7 +11,7 @@ if ! slither-flat b.sol; then exit 1 fi -SUFFIX = '@(sol)' +SUFFIX="@(sol)" if ! solc "crytic-export/flattening/"*$SUFFIX; then echo "solc failed on flattened files" exit 1 From 6649f14dddba1325ae698c2e49d6e13d4183b45b Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 6 May 2023 10:51:28 -0500 Subject: [PATCH 71/91] run markdowlint --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7017c78029..1d1a9497f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,11 +79,11 @@ How do I know what kind of test(s) to write? For each new detector, at least one regression tests must be present. -1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. +1. Create a folder in `tests/e2e/detectors/test_data` with the detector's argument name. 2. Create a test contract in `tests/e2e/detectors/test_data//`. 3. Update `ALL_TEST` in `tests/e2e/detectors/test_detectors.py` -4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. -5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. +4. Run `python tests/e2e/detectors/test_detectors.py --compile` to create a zip file of the compilation artifacts. +5. `pytest tests/e2e/detectors/test_detectors.py --insta update-new`. This will generate a snapshot of the detector output in `tests/e2e/detectors/snapshots/`. If updating an existing detector, run `pytest tests/e2e/detectors/test_detectors.py --insta review` and accept or reject the updates. 6. Run `pytest tests/e2e/detectors/test_detectors.py` to ensure everything worked. Then, add and commit the files to git. > ##### Helpful commands for detector tests From 92c06c4f4a0299ed6a374e91aab3a5ef71b71af2 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Mon, 8 May 2023 14:08:27 -0400 Subject: [PATCH 72/91] add tool slither-interface --- scripts/ci_test_interface.sh | 93 ++++++++++++++++++++++ setup.py | 1 + slither/tools/interface/__init__.py | 0 slither/tools/interface/__main__.py | 105 +++++++++++++++++++++++++ tests/tools/interface/ContractMock.sol | 33 ++++++++ tests/tools/interface/test_1.sol | 20 +++++ tests/tools/interface/test_2.sol | 19 +++++ tests/tools/interface/test_3.sol | 19 +++++ tests/tools/interface/test_4.sol | 15 ++++ tests/tools/interface/test_5.sol | 16 ++++ tests/tools/interface/test_6.sol | 18 +++++ tests/tools/interface/test_7.sol | 16 ++++ 12 files changed, 355 insertions(+) create mode 100644 scripts/ci_test_interface.sh create mode 100644 slither/tools/interface/__init__.py create mode 100644 slither/tools/interface/__main__.py create mode 100644 tests/tools/interface/ContractMock.sol create mode 100644 tests/tools/interface/test_1.sol create mode 100644 tests/tools/interface/test_2.sol create mode 100644 tests/tools/interface/test_3.sol create mode 100644 tests/tools/interface/test_4.sol create mode 100644 tests/tools/interface/test_5.sol create mode 100644 tests/tools/interface/test_6.sol create mode 100644 tests/tools/interface/test_7.sol diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh new file mode 100644 index 0000000000..04ce8ab09c --- /dev/null +++ b/scripts/ci_test_interface.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +### Test slither-interface + +DIR_TESTS="tests/tools/interface" + +#Test 1 - Etherscan target +slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 +DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 1 failed" + cat test_1.sol + echo "" + cat "$DIR_TESTS/test_1.sol" + exit 255 +fi + + +#Test 2 - Local file target +slither-interface Mock tests/tools/interface/ContractMock.sol +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 2 failed" + cat test_2.sol + echo "" + cat "$DIR_TESTS/test_2.sol" + exit 255 +fi + + +#Test 3 - unroll structs +slither-interface Mock tests/tools/interface/ContractMock.sol --unroll-structs +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 3 failed" + cat test_3.sol + echo "" + cat "$DIR_TESTS/test_3.sol" + exit 255 +fi + +#Test 4 - exclude structs +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-structs +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 4 failed" + cat test_4.sol + echo "" + cat "$DIR_TESTS/test_4.sol" + exit 255 +fi + +#Test 5 - exclude errors +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-errors +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 5 failed" + cat test_5.sol + echo "" + cat "$DIR_TESTS/test_5.sol" + exit 255 +fi + +#Test 6 - exclude enums +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-enums +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 6 failed" + cat test_6.sol + echo "" + cat "$DIR_TESTS/test_6.sol" + exit 255 +fi + +#Test 7 - exclude events +slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-events +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") +if [ "$DIFF" != "" ] +then + echo "slither-interface test 7 failed" + cat test_7.sol + echo "" + cat "$DIR_TESTS/test_7.sol" + exit 255 +fi + +rm -r crytic-export \ No newline at end of file diff --git a/setup.py b/setup.py index 27213481a0..c2dc8dcfb1 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ "slither-read-storage = slither.tools.read_storage.__main__:main", "slither-doctor = slither.tools.doctor.__main__:main", "slither-documentation = slither.tools.documentation.__main__:main", + "slither-interface = slither.tools.interface.__main__:main", ] }, ) diff --git a/slither/tools/interface/__init__.py b/slither/tools/interface/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/slither/tools/interface/__main__.py b/slither/tools/interface/__main__.py new file mode 100644 index 0000000000..e56c4b3ebe --- /dev/null +++ b/slither/tools/interface/__main__.py @@ -0,0 +1,105 @@ +import argparse +import logging +from pathlib import Path + +from crytic_compile import cryticparser + +from slither import Slither +from slither.utils.code_generation import generate_interface + +logging.basicConfig() +logger = logging.getLogger("Slither-Interface") +logger.setLevel(logging.INFO) + + +def parse_args() -> argparse.Namespace: + """ + Parse the underlying arguments for the program. + :return: Returns the arguments for the program. + """ + parser = argparse.ArgumentParser( + description="Generates code for a Solidity interface from contract", + usage=("slither-interface "), + ) + + parser.add_argument( + "contract_source", + help="The name of the contract (case sensitive) followed by the deployed contract address if verified on etherscan or project directory/filename for local contracts.", + nargs="+", + ) + + parser.add_argument( + "--unroll-structs", + help="Whether to use structures' underlying types instead of the user-defined type", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-events", + help="Excludes event signatures in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-errors", + help="Excludes custom error signatures in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-enums", + help="Excludes enum definitions in the interface", + default=False, + action="store_true", + ) + + parser.add_argument( + "--exclude-structs", + help="Exclude struct definitions in the interface", + default=False, + action="store_true", + ) + + cryticparser.init(parser) + + return parser.parse_args() + + +def main() -> None: + args = parse_args() + + contract_name, target = args.contract_source + slither = Slither(target, **vars(args)) + + _contract = slither.get_contract_from_name(contract_name)[0] + + interface = generate_interface( + contract=_contract, + unroll_structs=args.unroll_structs, + include_events=not args.exclude_events, + include_errors=not args.exclude_errors, + include_enums=not args.exclude_enums, + include_structs=not args.exclude_structs, + ) + + # add version pragma + interface = ( + f"pragma solidity {_contract.compilation_unit.pragma_directives[0].version};\n\n" + + interface + ) + + # write interface to file + export = Path("crytic-export", "interfaces") + export.mkdir(parents=True, exist_ok=True) + filename = f"I{contract_name}.sol" + path = Path(export, filename) + logger.info(f" Interface exported to {path}") + with open(path, "w", encoding="utf8") as f: + f.write(interface) + + +if __name__ == "__main__": + main() diff --git a/tests/tools/interface/ContractMock.sol b/tests/tools/interface/ContractMock.sol new file mode 100644 index 0000000000..e373035433 --- /dev/null +++ b/tests/tools/interface/ContractMock.sol @@ -0,0 +1,33 @@ +pragma solidity ^0.8.0; + +contract Mock { + + error Error1(); + error Error2(); + error Error3(); + + event Event1(); + event Event2(address param); + event Event3(uint256 num1, uint72 num2); + + struct Foo { + uint256 bar; + address baz; + } + + enum Status { + Active, + Pending, + Canceled + } + + Foo public foo; + + Status public status; + + function function1() public pure returns (address){ + return address(0); + } + + +} \ No newline at end of file diff --git a/tests/tools/interface/test_1.sol b/tests/tools/interface/test_1.sol new file mode 100644 index 0000000000..d306edeca1 --- /dev/null +++ b/tests/tools/interface/test_1.sol @@ -0,0 +1,20 @@ +pragma solidity ^0.4.18; + +interface IWETH9 { + event Approval(address, address, uint256); + event Transfer(address, address, uint256); + event Deposit(address, uint256); + event Withdrawal(address, uint256); + function name() external returns (string memory); + function symbol() external returns (string memory); + function decimals() external returns (uint8); + function balanceOf(address) external returns (uint256); + function allowance(address,address) external returns (uint256); + function deposit() external payable; + function withdraw(uint256) external; + function totalSupply() external view returns (uint256); + function approve(address,uint256) external returns (bool); + function transfer(address,uint256) external returns (bool); + function transferFrom(address,address,uint256) external returns (bool); +} + diff --git a/tests/tools/interface/test_2.sol b/tests/tools/interface/test_2.sol new file mode 100644 index 0000000000..6615826082 --- /dev/null +++ b/tests/tools/interface/test_2.sol @@ -0,0 +1,19 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_3.sol b/tests/tools/interface/test_3.sol new file mode 100644 index 0000000000..a1be364bc9 --- /dev/null +++ b/tests/tools/interface/test_3.sol @@ -0,0 +1,19 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (uint256, address); + function status() external returns (uint8); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_4.sol b/tests/tools/interface/test_4.sol new file mode 100644 index 0000000000..0631682871 --- /dev/null +++ b/tests/tools/interface/test_4.sol @@ -0,0 +1,15 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_5.sol b/tests/tools/interface/test_5.sol new file mode 100644 index 0000000000..9328a1107d --- /dev/null +++ b/tests/tools/interface/test_5.sol @@ -0,0 +1,16 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_6.sol b/tests/tools/interface/test_6.sol new file mode 100644 index 0000000000..5826543ee9 --- /dev/null +++ b/tests/tools/interface/test_6.sol @@ -0,0 +1,18 @@ +pragma solidity ^0.8.0; + +interface IMock { + event Event1(); + event Event2(address); + event Event3(uint256, uint72); + error Error1(); + error Error2(); + error Error3(); + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + diff --git a/tests/tools/interface/test_7.sol b/tests/tools/interface/test_7.sol new file mode 100644 index 0000000000..621273d317 --- /dev/null +++ b/tests/tools/interface/test_7.sol @@ -0,0 +1,16 @@ +pragma solidity ^0.8.0; + +interface IMock { + error Error1(); + error Error2(); + error Error3(); + enum Status { Active, Pending, Canceled } + struct Foo { + uint256 bar; + address baz; + } + function foo() external returns (Foo memory); + function status() external returns (Status); + function function1() external pure returns (address); +} + From 3861ea3e0439e246bf240e60b998d4dce38e7975 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Tue, 9 May 2023 09:23:23 -0400 Subject: [PATCH 73/91] add interface to ci.yml --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96a0a59c2e..09582eed94 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,7 @@ jobs: "etherscan", "find_paths", "flat", + "interface", "kspec", "printers", # "prop" From 279f1cb61cd8b3a788b8929ac613223bb1e28e96 Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Tue, 9 May 2023 15:29:31 -0400 Subject: [PATCH 74/91] resolve pragma version causing tests to fail --- scripts/ci_test_interface.sh | 2 ++ tests/tools/interface/ContractMock.sol | 2 +- tests/tools/interface/test_2.sol | 2 +- tests/tools/interface/test_3.sol | 2 +- tests/tools/interface/test_4.sol | 2 +- tests/tools/interface/test_5.sol | 2 +- tests/tools/interface/test_6.sol | 2 +- tests/tools/interface/test_7.sol | 2 +- 8 files changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 04ce8ab09c..05859eb476 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -4,6 +4,8 @@ DIR_TESTS="tests/tools/interface" +solc-select use 0.8.19 --always-install + #Test 1 - Etherscan target slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") diff --git a/tests/tools/interface/ContractMock.sol b/tests/tools/interface/ContractMock.sol index e373035433..208e6f21aa 100644 --- a/tests/tools/interface/ContractMock.sol +++ b/tests/tools/interface/ContractMock.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; contract Mock { diff --git a/tests/tools/interface/test_2.sol b/tests/tools/interface/test_2.sol index 6615826082..ac383459d1 100644 --- a/tests/tools/interface/test_2.sol +++ b/tests/tools/interface/test_2.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_3.sol b/tests/tools/interface/test_3.sol index a1be364bc9..87b26e6afe 100644 --- a/tests/tools/interface/test_3.sol +++ b/tests/tools/interface/test_3.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_4.sol b/tests/tools/interface/test_4.sol index 0631682871..06525c5c09 100644 --- a/tests/tools/interface/test_4.sol +++ b/tests/tools/interface/test_4.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_5.sol b/tests/tools/interface/test_5.sol index 9328a1107d..26704c8622 100644 --- a/tests/tools/interface/test_5.sol +++ b/tests/tools/interface/test_5.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_6.sol b/tests/tools/interface/test_6.sol index 5826543ee9..d05d1fc2e2 100644 --- a/tests/tools/interface/test_6.sol +++ b/tests/tools/interface/test_6.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { event Event1(); diff --git a/tests/tools/interface/test_7.sol b/tests/tools/interface/test_7.sol index 621273d317..4e362f804f 100644 --- a/tests/tools/interface/test_7.sol +++ b/tests/tools/interface/test_7.sol @@ -1,4 +1,4 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.19; interface IMock { error Error1(); From 1a369523498a26650af1b576adfc96bf0b164a7b Mon Sep 17 00:00:00 2001 From: Simone Date: Tue, 9 May 2023 23:21:01 +0200 Subject: [PATCH 75/91] Add test --- .../solc_parsing/test_data/assembly-all.sol | 9 ++++++++- .../compile/assembly-all.sol-0.4.0-legacy.zip | Bin 998 -> 1195 bytes .../compile/assembly-all.sol-0.4.1-legacy.zip | Bin 997 -> 1197 bytes .../assembly-all.sol-0.4.10-legacy.zip | Bin 1050 -> 1212 bytes .../assembly-all.sol-0.4.11-legacy.zip | Bin 1065 -> 1218 bytes .../assembly-all.sol-0.4.12-compact.zip | Bin 1202 -> 1428 bytes .../assembly-all.sol-0.4.12-legacy.zip | Bin 1187 -> 1383 bytes .../assembly-all.sol-0.4.13-compact.zip | Bin 1205 -> 1425 bytes .../assembly-all.sol-0.4.13-legacy.zip | Bin 1188 -> 1382 bytes .../assembly-all.sol-0.4.14-compact.zip | Bin 1207 -> 1432 bytes .../assembly-all.sol-0.4.14-legacy.zip | Bin 1190 -> 1391 bytes .../assembly-all.sol-0.4.15-compact.zip | Bin 1206 -> 1431 bytes .../assembly-all.sol-0.4.15-legacy.zip | Bin 1189 -> 1390 bytes .../assembly-all.sol-0.4.16-compact.zip | Bin 1220 -> 1441 bytes .../assembly-all.sol-0.4.16-legacy.zip | Bin 1205 -> 1405 bytes .../assembly-all.sol-0.4.17-compact.zip | Bin 1220 -> 1438 bytes .../assembly-all.sol-0.4.17-legacy.zip | Bin 1201 -> 1400 bytes .../assembly-all.sol-0.4.18-compact.zip | Bin 1226 -> 1447 bytes .../assembly-all.sol-0.4.18-legacy.zip | Bin 1208 -> 1408 bytes .../assembly-all.sol-0.4.19-compact.zip | Bin 1229 -> 1448 bytes .../assembly-all.sol-0.4.19-legacy.zip | Bin 1210 -> 1409 bytes .../compile/assembly-all.sol-0.4.2-legacy.zip | Bin 997 -> 1197 bytes .../assembly-all.sol-0.4.20-compact.zip | Bin 1229 -> 1449 bytes .../assembly-all.sol-0.4.20-legacy.zip | Bin 1210 -> 1410 bytes .../assembly-all.sol-0.4.21-compact.zip | Bin 1234 -> 1450 bytes .../assembly-all.sol-0.4.21-legacy.zip | Bin 1213 -> 1413 bytes .../assembly-all.sol-0.4.22-compact.zip | Bin 1261 -> 1476 bytes .../assembly-all.sol-0.4.22-legacy.zip | Bin 1238 -> 1442 bytes .../assembly-all.sol-0.4.23-compact.zip | Bin 1262 -> 1476 bytes .../assembly-all.sol-0.4.23-legacy.zip | Bin 1239 -> 1443 bytes .../assembly-all.sol-0.4.24-compact.zip | Bin 1262 -> 1476 bytes .../assembly-all.sol-0.4.24-legacy.zip | Bin 1240 -> 1442 bytes .../assembly-all.sol-0.4.25-compact.zip | Bin 1263 -> 1476 bytes .../assembly-all.sol-0.4.25-legacy.zip | Bin 1241 -> 1443 bytes .../assembly-all.sol-0.4.26-compact.zip | Bin 1260 -> 1475 bytes .../assembly-all.sol-0.4.26-legacy.zip | Bin 1237 -> 1442 bytes .../compile/assembly-all.sol-0.4.3-legacy.zip | Bin 998 -> 1199 bytes .../compile/assembly-all.sol-0.4.4-legacy.zip | Bin 999 -> 1196 bytes .../compile/assembly-all.sol-0.4.5-legacy.zip | Bin 982 -> 1172 bytes .../compile/assembly-all.sol-0.4.6-legacy.zip | Bin 984 -> 1170 bytes .../compile/assembly-all.sol-0.4.7-legacy.zip | Bin 1061 -> 1248 bytes .../compile/assembly-all.sol-0.4.8-legacy.zip | Bin 1063 -> 1249 bytes .../compile/assembly-all.sol-0.4.9-legacy.zip | Bin 1052 -> 1210 bytes .../assembly-all.sol-0.5.0-compact.zip | Bin 1247 -> 1466 bytes .../compile/assembly-all.sol-0.5.0-legacy.zip | Bin 1244 -> 1446 bytes .../assembly-all.sol-0.5.1-compact.zip | Bin 1248 -> 1465 bytes .../compile/assembly-all.sol-0.5.1-legacy.zip | Bin 1245 -> 1444 bytes .../assembly-all.sol-0.5.10-compact.zip | Bin 1246 -> 1463 bytes .../assembly-all.sol-0.5.10-legacy.zip | Bin 1243 -> 1444 bytes .../assembly-all.sol-0.5.11-compact.zip | Bin 1248 -> 1462 bytes .../assembly-all.sol-0.5.11-legacy.zip | Bin 1246 -> 1443 bytes .../assembly-all.sol-0.5.12-compact.zip | Bin 1245 -> 1460 bytes .../assembly-all.sol-0.5.12-legacy.zip | Bin 1243 -> 1440 bytes .../assembly-all.sol-0.5.13-compact.zip | Bin 1245 -> 1462 bytes .../assembly-all.sol-0.5.13-legacy.zip | Bin 1243 -> 1444 bytes .../assembly-all.sol-0.5.14-compact.zip | Bin 1248 -> 1460 bytes .../assembly-all.sol-0.5.14-legacy.zip | Bin 1246 -> 1442 bytes .../assembly-all.sol-0.5.15-compact.zip | Bin 1246 -> 1462 bytes .../assembly-all.sol-0.5.15-legacy.zip | Bin 1243 -> 1443 bytes .../assembly-all.sol-0.5.16-compact.zip | Bin 1244 -> 1463 bytes .../assembly-all.sol-0.5.16-legacy.zip | Bin 1242 -> 1445 bytes .../assembly-all.sol-0.5.17-compact.zip | Bin 1247 -> 1461 bytes .../assembly-all.sol-0.5.17-legacy.zip | Bin 1247 -> 1442 bytes .../assembly-all.sol-0.5.2-compact.zip | Bin 1245 -> 1459 bytes .../compile/assembly-all.sol-0.5.2-legacy.zip | Bin 1242 -> 1437 bytes .../assembly-all.sol-0.5.3-compact.zip | Bin 1244 -> 1457 bytes .../compile/assembly-all.sol-0.5.3-legacy.zip | Bin 1241 -> 1434 bytes .../assembly-all.sol-0.5.4-compact.zip | Bin 1241 -> 1459 bytes .../compile/assembly-all.sol-0.5.4-legacy.zip | Bin 1238 -> 1437 bytes .../assembly-all.sol-0.5.5-compact.zip | Bin 1235 -> 1447 bytes .../compile/assembly-all.sol-0.5.5-legacy.zip | Bin 1235 -> 1427 bytes .../assembly-all.sol-0.5.6-compact.zip | Bin 1234 -> 1451 bytes .../compile/assembly-all.sol-0.5.6-legacy.zip | Bin 1232 -> 1429 bytes .../assembly-all.sol-0.5.7-compact.zip | Bin 1235 -> 1453 bytes .../compile/assembly-all.sol-0.5.7-legacy.zip | Bin 1234 -> 1432 bytes .../assembly-all.sol-0.5.8-compact.zip | Bin 1236 -> 1451 bytes .../compile/assembly-all.sol-0.5.8-legacy.zip | Bin 1233 -> 1431 bytes .../assembly-all.sol-0.5.9-compact.zip | Bin 1247 -> 1462 bytes .../compile/assembly-all.sol-0.5.9-legacy.zip | Bin 1248 -> 1445 bytes .../assembly-all.sol-0.6.0-compact.zip | Bin 1362 -> 1586 bytes .../compile/assembly-all.sol-0.6.0-legacy.zip | Bin 1259 -> 1451 bytes .../assembly-all.sol-0.6.1-compact.zip | Bin 1362 -> 1587 bytes .../compile/assembly-all.sol-0.6.1-legacy.zip | Bin 1260 -> 1454 bytes .../assembly-all.sol-0.6.10-compact.zip | Bin 1354 -> 1587 bytes .../assembly-all.sol-0.6.10-legacy.zip | Bin 1254 -> 1448 bytes .../assembly-all.sol-0.6.11-compact.zip | Bin 1357 -> 1583 bytes .../assembly-all.sol-0.6.11-legacy.zip | Bin 1256 -> 1446 bytes .../assembly-all.sol-0.6.12-compact.zip | Bin 1356 -> 1586 bytes .../assembly-all.sol-0.6.12-legacy.zip | Bin 1255 -> 1448 bytes .../assembly-all.sol-0.6.2-compact.zip | Bin 1370 -> 1595 bytes .../compile/assembly-all.sol-0.6.2-legacy.zip | Bin 1267 -> 1460 bytes .../assembly-all.sol-0.6.3-compact.zip | Bin 1382 -> 1609 bytes .../compile/assembly-all.sol-0.6.3-legacy.zip | Bin 1280 -> 1472 bytes .../assembly-all.sol-0.6.4-compact.zip | Bin 1382 -> 1611 bytes .../compile/assembly-all.sol-0.6.4-legacy.zip | Bin 1280 -> 1473 bytes .../assembly-all.sol-0.6.5-compact.zip | Bin 1383 -> 1608 bytes .../compile/assembly-all.sol-0.6.5-legacy.zip | Bin 1280 -> 1472 bytes .../assembly-all.sol-0.6.6-compact.zip | Bin 1381 -> 1608 bytes .../compile/assembly-all.sol-0.6.6-legacy.zip | Bin 1279 -> 1472 bytes .../assembly-all.sol-0.6.7-compact.zip | Bin 1382 -> 1606 bytes .../compile/assembly-all.sol-0.6.7-legacy.zip | Bin 1279 -> 1470 bytes .../assembly-all.sol-0.6.8-compact.zip | Bin 1384 -> 1614 bytes .../compile/assembly-all.sol-0.6.8-legacy.zip | Bin 1282 -> 1477 bytes .../assembly-all.sol-0.6.9-compact.zip | Bin 1356 -> 1581 bytes .../compile/assembly-all.sol-0.6.9-legacy.zip | Bin 1254 -> 1444 bytes .../assembly-all.sol-0.7.0-compact.zip | Bin 1333 -> 1546 bytes .../compile/assembly-all.sol-0.7.0-legacy.zip | Bin 1227 -> 1404 bytes .../assembly-all.sol-0.7.1-compact.zip | Bin 1332 -> 1545 bytes .../compile/assembly-all.sol-0.7.1-legacy.zip | Bin 1227 -> 1403 bytes .../assembly-all.sol-0.7.2-compact.zip | Bin 1334 -> 1546 bytes .../compile/assembly-all.sol-0.7.2-legacy.zip | Bin 1229 -> 1405 bytes .../assembly-all.sol-0.7.3-compact.zip | Bin 1331 -> 1547 bytes .../compile/assembly-all.sol-0.7.3-legacy.zip | Bin 1227 -> 1406 bytes .../assembly-all.sol-0.7.4-compact.zip | Bin 1330 -> 1547 bytes .../compile/assembly-all.sol-0.7.4-legacy.zip | Bin 1227 -> 1406 bytes .../assembly-all.sol-0.7.5-compact.zip | Bin 1332 -> 1545 bytes .../compile/assembly-all.sol-0.7.5-legacy.zip | Bin 1229 -> 1404 bytes .../assembly-all.sol-0.7.6-compact.zip | Bin 1337 -> 1548 bytes .../compile/assembly-all.sol-0.7.6-legacy.zip | Bin 1232 -> 1406 bytes .../assembly-all.sol-0.8.0-compact.zip | Bin 1333 -> 1504 bytes .../assembly-all.sol-0.8.1-compact.zip | Bin 1331 -> 1502 bytes .../assembly-all.sol-0.8.10-compact.zip | Bin 1343 -> 1533 bytes .../assembly-all.sol-0.8.11-compact.zip | Bin 1345 -> 1538 bytes .../assembly-all.sol-0.8.12-compact.zip | Bin 1340 -> 1533 bytes .../assembly-all.sol-0.8.13-compact.zip | Bin 1340 -> 1532 bytes .../assembly-all.sol-0.8.14-compact.zip | Bin 1336 -> 1532 bytes .../assembly-all.sol-0.8.15-compact.zip | Bin 1341 -> 1533 bytes .../assembly-all.sol-0.8.2-compact.zip | Bin 1350 -> 1521 bytes .../assembly-all.sol-0.8.3-compact.zip | Bin 1347 -> 1526 bytes .../assembly-all.sol-0.8.4-compact.zip | Bin 1357 -> 1536 bytes .../assembly-all.sol-0.8.5-compact.zip | Bin 1350 -> 1536 bytes .../assembly-all.sol-0.8.6-compact.zip | Bin 1351 -> 1538 bytes .../assembly-all.sol-0.8.7-compact.zip | Bin 1352 -> 1536 bytes .../assembly-all.sol-0.8.8-compact.zip | Bin 1333 -> 1522 bytes .../assembly-all.sol-0.8.9-compact.zip | Bin 1344 -> 1534 bytes .../assembly-all.sol-0.4.0-compact.json | 5 ----- .../assembly-all.sol-0.4.0-legacy.json | 3 ++- .../assembly-all.sol-0.4.1-compact.json | 5 ----- .../assembly-all.sol-0.4.1-legacy.json | 3 ++- .../assembly-all.sol-0.4.10-compact.json | 5 ----- .../assembly-all.sol-0.4.10-legacy.json | 3 ++- .../assembly-all.sol-0.4.11-compact.json | 5 ----- .../assembly-all.sol-0.4.11-legacy.json | 3 ++- .../assembly-all.sol-0.4.12-compact.json | 3 ++- .../assembly-all.sol-0.4.12-legacy.json | 3 ++- .../assembly-all.sol-0.4.13-compact.json | 3 ++- .../assembly-all.sol-0.4.13-legacy.json | 3 ++- .../assembly-all.sol-0.4.14-compact.json | 3 ++- .../assembly-all.sol-0.4.14-legacy.json | 3 ++- .../assembly-all.sol-0.4.15-compact.json | 3 ++- .../assembly-all.sol-0.4.15-legacy.json | 3 ++- .../assembly-all.sol-0.4.16-compact.json | 3 ++- .../assembly-all.sol-0.4.16-legacy.json | 3 ++- .../assembly-all.sol-0.4.17-compact.json | 3 ++- .../assembly-all.sol-0.4.17-legacy.json | 3 ++- .../assembly-all.sol-0.4.18-compact.json | 3 ++- .../assembly-all.sol-0.4.18-legacy.json | 3 ++- .../assembly-all.sol-0.4.19-compact.json | 3 ++- .../assembly-all.sol-0.4.19-legacy.json | 3 ++- .../assembly-all.sol-0.4.2-compact.json | 5 ----- .../assembly-all.sol-0.4.2-legacy.json | 3 ++- .../assembly-all.sol-0.4.20-compact.json | 3 ++- .../assembly-all.sol-0.4.20-legacy.json | 3 ++- .../assembly-all.sol-0.4.21-compact.json | 3 ++- .../assembly-all.sol-0.4.21-legacy.json | 3 ++- .../assembly-all.sol-0.4.22-compact.json | 3 ++- .../assembly-all.sol-0.4.22-legacy.json | 3 ++- .../assembly-all.sol-0.4.23-compact.json | 3 ++- .../assembly-all.sol-0.4.23-legacy.json | 3 ++- .../assembly-all.sol-0.4.24-compact.json | 3 ++- .../assembly-all.sol-0.4.24-legacy.json | 3 ++- .../assembly-all.sol-0.4.25-compact.json | 3 ++- .../assembly-all.sol-0.4.25-legacy.json | 3 ++- .../assembly-all.sol-0.4.26-compact.json | 3 ++- .../assembly-all.sol-0.4.26-legacy.json | 3 ++- .../assembly-all.sol-0.4.3-compact.json | 5 ----- .../assembly-all.sol-0.4.3-legacy.json | 3 ++- .../assembly-all.sol-0.4.4-compact.json | 5 ----- .../assembly-all.sol-0.4.4-legacy.json | 3 ++- .../assembly-all.sol-0.4.5-compact.json | 5 ----- .../assembly-all.sol-0.4.5-legacy.json | 3 ++- .../assembly-all.sol-0.4.6-compact.json | 5 ----- .../assembly-all.sol-0.4.6-legacy.json | 3 ++- .../assembly-all.sol-0.4.7-compact.json | 5 ----- .../assembly-all.sol-0.4.7-legacy.json | 3 ++- .../assembly-all.sol-0.4.8-compact.json | 5 ----- .../assembly-all.sol-0.4.8-legacy.json | 3 ++- .../assembly-all.sol-0.4.9-compact.json | 5 ----- .../assembly-all.sol-0.4.9-legacy.json | 3 ++- .../assembly-all.sol-0.5.0-compact.json | 3 ++- .../assembly-all.sol-0.5.0-legacy.json | 3 ++- .../assembly-all.sol-0.5.1-compact.json | 3 ++- .../assembly-all.sol-0.5.1-legacy.json | 3 ++- .../assembly-all.sol-0.5.10-compact.json | 3 ++- .../assembly-all.sol-0.5.10-legacy.json | 3 ++- .../assembly-all.sol-0.5.11-compact.json | 3 ++- .../assembly-all.sol-0.5.11-legacy.json | 3 ++- .../assembly-all.sol-0.5.12-compact.json | 3 ++- .../assembly-all.sol-0.5.12-legacy.json | 3 ++- .../assembly-all.sol-0.5.13-compact.json | 3 ++- .../assembly-all.sol-0.5.13-legacy.json | 3 ++- .../assembly-all.sol-0.5.14-compact.json | 3 ++- .../assembly-all.sol-0.5.14-legacy.json | 3 ++- .../assembly-all.sol-0.5.15-compact.json | 3 ++- .../assembly-all.sol-0.5.15-legacy.json | 3 ++- .../assembly-all.sol-0.5.16-compact.json | 3 ++- .../assembly-all.sol-0.5.16-legacy.json | 3 ++- .../assembly-all.sol-0.5.17-compact.json | 3 ++- .../assembly-all.sol-0.5.17-legacy.json | 3 ++- .../assembly-all.sol-0.5.2-compact.json | 3 ++- .../assembly-all.sol-0.5.2-legacy.json | 3 ++- .../assembly-all.sol-0.5.3-compact.json | 3 ++- .../assembly-all.sol-0.5.3-legacy.json | 3 ++- .../assembly-all.sol-0.5.4-compact.json | 3 ++- .../assembly-all.sol-0.5.4-legacy.json | 3 ++- .../assembly-all.sol-0.5.5-compact.json | 3 ++- .../assembly-all.sol-0.5.5-legacy.json | 3 ++- .../assembly-all.sol-0.5.6-compact.json | 3 ++- .../assembly-all.sol-0.5.6-legacy.json | 3 ++- .../assembly-all.sol-0.5.7-compact.json | 3 ++- .../assembly-all.sol-0.5.7-legacy.json | 3 ++- .../assembly-all.sol-0.5.8-compact.json | 3 ++- .../assembly-all.sol-0.5.8-legacy.json | 3 ++- .../assembly-all.sol-0.5.9-compact.json | 3 ++- .../assembly-all.sol-0.5.9-legacy.json | 3 ++- .../assembly-all.sol-0.6.0-compact.json | 3 ++- .../assembly-all.sol-0.6.0-legacy.json | 3 ++- .../assembly-all.sol-0.6.1-compact.json | 3 ++- .../assembly-all.sol-0.6.1-legacy.json | 3 ++- .../assembly-all.sol-0.6.10-compact.json | 3 ++- .../assembly-all.sol-0.6.10-legacy.json | 3 ++- .../assembly-all.sol-0.6.11-compact.json | 3 ++- .../assembly-all.sol-0.6.11-legacy.json | 3 ++- .../assembly-all.sol-0.6.12-compact.json | 3 ++- .../assembly-all.sol-0.6.12-legacy.json | 3 ++- .../assembly-all.sol-0.6.2-compact.json | 3 ++- .../assembly-all.sol-0.6.2-legacy.json | 3 ++- .../assembly-all.sol-0.6.3-compact.json | 3 ++- .../assembly-all.sol-0.6.3-legacy.json | 3 ++- .../assembly-all.sol-0.6.4-compact.json | 3 ++- .../assembly-all.sol-0.6.4-legacy.json | 3 ++- .../assembly-all.sol-0.6.5-compact.json | 3 ++- .../assembly-all.sol-0.6.5-legacy.json | 3 ++- .../assembly-all.sol-0.6.6-compact.json | 3 ++- .../assembly-all.sol-0.6.6-legacy.json | 3 ++- .../assembly-all.sol-0.6.7-compact.json | 3 ++- .../assembly-all.sol-0.6.7-legacy.json | 3 ++- .../assembly-all.sol-0.6.8-compact.json | 3 ++- .../assembly-all.sol-0.6.8-legacy.json | 3 ++- .../assembly-all.sol-0.6.9-compact.json | 3 ++- .../assembly-all.sol-0.6.9-legacy.json | 3 ++- .../assembly-all.sol-0.7.0-compact.json | 3 ++- .../assembly-all.sol-0.7.0-legacy.json | 3 ++- .../assembly-all.sol-0.7.1-compact.json | 3 ++- .../assembly-all.sol-0.7.1-legacy.json | 3 ++- .../assembly-all.sol-0.7.2-compact.json | 3 ++- .../assembly-all.sol-0.7.2-legacy.json | 3 ++- .../assembly-all.sol-0.7.3-compact.json | 3 ++- .../assembly-all.sol-0.7.3-legacy.json | 3 ++- .../assembly-all.sol-0.7.4-compact.json | 3 ++- .../assembly-all.sol-0.7.4-legacy.json | 3 ++- .../assembly-all.sol-0.7.5-compact.json | 3 ++- .../assembly-all.sol-0.7.5-legacy.json | 3 ++- .../assembly-all.sol-0.7.6-compact.json | 3 ++- .../assembly-all.sol-0.7.6-legacy.json | 3 ++- .../assembly-all.sol-0.8.0-compact.json | 3 ++- .../assembly-all.sol-0.8.1-compact.json | 3 ++- .../assembly-all.sol-0.8.10-compact.json | 3 ++- .../assembly-all.sol-0.8.11-compact.json | 3 ++- .../assembly-all.sol-0.8.12-compact.json | 3 ++- .../assembly-all.sol-0.8.13-compact.json | 3 ++- .../assembly-all.sol-0.8.14-compact.json | 3 ++- .../assembly-all.sol-0.8.15-compact.json | 3 ++- .../assembly-all.sol-0.8.2-compact.json | 3 ++- .../assembly-all.sol-0.8.3-compact.json | 3 ++- .../assembly-all.sol-0.8.4-compact.json | 3 ++- .../assembly-all.sol-0.8.5-compact.json | 3 ++- .../assembly-all.sol-0.8.6-compact.json | 3 ++- .../assembly-all.sol-0.8.7-compact.json | 3 ++- .../assembly-all.sol-0.8.8-compact.json | 3 ++- .../assembly-all.sol-0.8.9-compact.json | 3 ++- 281 files changed, 276 insertions(+), 195 deletions(-) delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json delete mode 100644 tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json diff --git a/tests/e2e/solc_parsing/test_data/assembly-all.sol b/tests/e2e/solc_parsing/test_data/assembly-all.sol index 0a0efc63a0..174ed06b35 100644 --- a/tests/e2e/solc_parsing/test_data/assembly-all.sol +++ b/tests/e2e/solc_parsing/test_data/assembly-all.sol @@ -1,5 +1,12 @@ contract C { - function f() public { + modifier a() { + assembly { + let y := 0 + } + _; + } + + function f() public a { assembly { let x := 0 } diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.0-legacy.zip index 28941b5b90dea7dad7b14881aa32362d410b891e..91d6a134dc250f216d6e09919ba78cc3a1bebae6 100644 GIT binary patch delta 1067 zcmV+`1l0TH2dfDfP)h>@KL7#%4gj0Esa7S)h`|8_000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq2u#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqieFi7#o*&hw-U$1N0ViwUtosLo%`=P@bRV-W2NXhp`X zJO*6-St87=U?P>TvXUt3Ax)IiS`4PgB0PjgeTcU=+i}{|o_w++F;5zr04O%Gm_{wG z-9aF2*{43e`eHGc!F!NG7!)lN+}~`9DR>4Ma^uP;bXO#Qu3JBClBG0~68R%3-X(NA zC~&BU@}6{=rsz9l^jx5RPNHBAKKqx7QeqYyg@N3(+l`LRfok%AeY&^tm=8dpFw{{` zz_a?lgJ&K{n^tdcKZ~X~J5Pd`rN0n*T?Mn4dyl^feF3l>rDy&f!Xcx~J#!t+;NlH^ zXwBCbQ!plfhfLD$x}HkwLTxx;3EtS~!(-rB<**z#^~BYusEjgoub<1>9xC|H;WY-o_Vl;3=06aUPHOsq}4j;?%25EtXjRp zqF${8jf#6Cv&yk;g(OD9zavGX0w#|>4J_yI{EqS&XdAu*Gyo5(+<~)KXz4z67*2bz z=3As<%HRqj&LKY5srgJbeZM8Jn7W$8KiJyV7hSw!!JHG;mBW=~`Bzvg1#gwL?qjZ8 zq~i2{!)ryWH00RhCNBNs#pP`WY*GLOH~&?2@^W)QD3{I9)t@JOl-hQo!PIsr4gHzH zUF%Lmw?5N{0!)oEYwn=->Pi!+4im$+qGTa%ZYAEKs}K`zyW z`hmu%r4wishQGeeoVB_g+CF!8{CCkMrBt(nOv+biJvg7=8B5~MGE*)bn6r~71uwJq zp$Qo|bYtT}{MsB|5EgD;={&O?bJJjBG-OAO!Fq8^@ctnfz3vW?c<~DX{-xF!P)h*< lKLbAi0ssyGo4Ki0CCP}v0R#X53J(C2nFB`#Lj(W-001te{z3o% delta 875 zcmV-x1C;!$3FZeIP)h>@KL7#%4giI5a8#pCR-QZq007zw001PDZUiThLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF!~b=HP2p*Usr&MXPiwdShX5D;uf%J7?V&mU zZ?2Z8_M_usvM3LkiuI@cN7jE^C$n}?TDn_DYJ4sg>$;tH7g(tkN|-ZkaesoAJlWNe zYEo%DB_g4L&;}d)j81uf>YI{ALLi0wp_c!aiUQ~)#1Ro5>#Zw+VOyrDH9({{$hq$| zGc;bx+vvA^$F%p9W%sx)obhj3%ov{^FTHHiGvgFrS|RPfZP@$ACmw$#C>U&nV=Y47 z^J5(40U8&o15iEWNj?_8prUM0e0|NaP+FON7y?8!gaCRzV7$$r23Q_(sE>2TXYLHj zhgXPsKK?p>aoUs6J5XAfHq3CB0^gU0{*ZTqVHPhkmvy+g-LyMfsJ!+zxfR~APlv;Q zOV)aX@8XzIwX^4cIMRPTn->Kryxi}qS!b5h!;9_!n38h#D0!iYpO|~bdeETC;Z)}8 zF%A-<_Z&Tcrx}ZrU*Uu#Y%IJj{yvM0Mol$+IlsDqCa>PxipSgOA;plQeb>VXIQ1Ji z{Es88aM^nh{i~i97ul5|(Ul|3oosNj2Rr?0;>?yzfkB!Z5JrESE@sXdHSN4JbJL@x z(_6}0W@7bz!p!c2gEk0A`7y(4O6(ZEA}qiH!ksu%b*9eRa{|`t`1r=%|1Lx;)M5S{ z{)5c%?l}eg>gPt?!R}H?=Ar_S`B&ytnHo;kro}nU7MFC8mKEGBwHpXEP(86Ivxr_B zb5;oLnm=~L3;KU<8617`*o6ndC>a6UL9=b%Nj$(^T{FEEG#m85HUkap?ZJ~V25t#0 z`yF_G323R%h{PwKedO5vXDdG+_U}$Ih;u}j%w%oG<%ZVl<Y30C*ae)W3zR)KCDK4%8 zft?qi>}|Q_|BuzE08mQ-0zU&k00ICG0EKaIRHIH-o;(8p0NM(ZT?9x5eggmi005!L Bt0({f diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.1-legacy.zip index f55fa211ae095e3219101bbde9247471237843a8..b9d9d2076d9a543d9a606bd5787a5fd5b550f70f 100644 GIT binary patch delta 1069 zcmV+|1k(HE2dxPhP)h>@KL7#%4gj3Fsa93}%!LC4000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq6u81Clx9`$Bhun3x zLi~j6r9V`XKGs@)O6GztNLoK|=!c9dfhyls)0Jay-uy2$e9E{R^Fz**hKOA0lsQ~v zrP*C$)+uXt{W2YbLJPKsXL#ptWXEO12JQGO5ZM4gX{mJlczP1F^k&kETfut(uU;!w z6C90dxc|gT90tm#6j()t@yANMutmAqp(+_$6Ul>6Ydn(G`p zfF<}rpbp%BeKw}#_Pm-{F%@)o4 z#9@R$%U0^Rh$EgM$X6745({oq0wbqAx4qLT1LWM*AK%yVLnTR7Svxf|y}Hcbzb6STIO=p|lG%Ojm>bL?6_83ZhfSW5!! za-mln#JQxOjc&(_ru_IHJmMV$)(5f(fd2ZVrx?yG4)2#|Y^HX@iWZDzjboUt%XHWF zi5&iaQ99a*+K%Baqbv{Dmu!MUIU_26%cSDMX@g}F$!20SaQOdS8i`DKzPR7$=c-ho zabw6aX`qHef*Sgbo&wuFF{1-4Sj)4$7|=6siDn<>>?(cyDdrkXn2?rbXxeRi<%2j1Fpu3lrWBy;2F#Z zW4chL1`FdPp^d#JNgE?y8c9)s8A>PvnYnxl+UXB@iwVJ4>;WApe{X-NB>$=@Q!-FX n0Rle*KL7#%4gj3Fsa93}%!LC4000UB50jSzNCrg&00000TbKOI delta 874 zcmV-w1C{)(3FQYHP)h>@KL7#%4giI5a8yt+oXR@`007zw001PDa0DljLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#3wcoADsB@EYccQLdI-h?SuSi7X=2v4K8D1 z>y_jj&DZ94VO)-bx8*sAd+UE%96!H9=1V7XD6n)ReRH{uyDP&$5=hGQ@uwaa3XTEP zO(KSgTZ^H=h30^1@eNi$BC+cyumB~J0XDy!rt2aqb)GyLC{C*4Ip6zz8YAN+Cs55> zcO4U-L0lxFNUZ9X<`_oEGz8TdENKX@%)=L#F8I*oAgg9Lfa=o)s>6TBnru8{D1;7P ze*(FlR+eUR(t_(Uj_B;t^jm`4PC0&S9@MbQ|DRR$sZ_jO`1T9g!8* zx?{|@3PXGzWup5i8=0|&h8Y;p1GYd&Uhwxu7kShvRW(F;otZtj^oO#KYh}isO7Pdn zPh1DER8#augMhhq1V9WeoJ=TIPCDDH&iuEsf3vSRqnlti6HP%)g!I|Bd!+6t3j1V{#b0{{R306~$M A*#H0l diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.10-legacy.zip index 801a9992152fbbd834d298cb9953a4483ea5a007..287f7e555cca19c09713b0859c2a5dfa16582421 100644 GIT binary patch delta 1091 zcmV-J1ibs22)qd!P)h>@KL7#%4gjXPsaEZAt(+1B007$#001PD-2*3)LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#ud`s)U;icu_ zPhAM0%c;4D*Tz+iz|-%+@ygVBx9-_ZOUOM;*Q&2)F}Hz+PA`F)scSxDey>0q-9Vgp z3JQtqDe-{=jFR_u|1wHvuQ>#{;hD64P6CwW)hVB(E*FOPd2fWpr`3OE$SWV=H^X*J z!(hx8VtuN|hkMbdHyIu7f??~3K-oN<+2uR0Q%?d;tiBkTjT5Empu)$=w%p9`%v2{i zR4w<7JU-eVyk;xZ$Re|&5Tk6esD7*kP9UFpjY5-mt4BO`uu9K>Rp_zS8D51$03Puw zV{y380Up$U2fI)OBF%sQf*-=9oZk~*rn#I`e?MaGYuW^5BR)KHV(p*)S6APQ_ec6b zfwG9E3iiv7_|oC3=~qHB1iE07CLiWl z@wztH`nLKlbUhjpCv=_!I*@CK0?YA@u^$FRJk0%g$An@P2sM8R3Lu~;f6x$_Gg@Q1 zHP@t;w5r4u(@>RVf)TiO-J^DSc~KuRao@DC7DbO&$rrMe=cxF#KQJv(w zq(vGv)hFQ2+Eah&iI}o%;Hp@O1StG!dM~*Yz0DnLX^niNQnv%(-JX*+0j9gz=?hJD zuWV?eU$%5+__|Th;4s)!!y4@(8Yp5$@NeW{92t{Bg@a0OJ4V$^QK7_W*^{oq2N@pRmfSz^?Nxh}bHIiL^_qWHl~)ZX!>Vl}`Jy^c@thE$;ysEF&9wRS}1UT~L)I=JOn{EfRO* z8I)}=?Zt=TrtT^t-1!{fF^+#h^6oSWE?};&n>?Z_={4|VD`lfGE9)<}nx~L;8R${rQ1?kX>L*OyQ|uK_$+x;?HGWy z9PO1<6#YJ~uok&9@KL7#%4giL6a8%=|%ouP3003AE001PDe*`CyLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#1qG4)KkA-T@TNnEhhbIeh1j((45_#O&Lz< z@A;}4+Z*K}KZn*d>=_BQ|K@*d`unaaD^<<<`IS{pBTAarFK0)BjppZW+wA7pFtk=# zec0|7v`OAJV(tdfg zT(hRs+stAp$ZbUorDGGE+6VaxrwtHRP^zy{-xnSh|BVRTcKMWd%P;z-TROAzE8*t1 zOHwU%jhu>9YC}PYk*j}ai?yv`>bXtOM5BPGV?NO8<9{7n%z#2RN)tZ&S_^_JAA6Z& znTGH(QtgdPot{OcjgJ9LAjF!O{;|DBA9|5QyQWf7{FHw%`x*LDXGU2$59{oLv|wS~ z;0Yf<^F#~D^lUc*g5*HEvN5i7GI#!&3~3E08cthAjK1-xS!#dl!SPSUJQ4z&=-V`$ zHfNX(ttJ{iRO|f?`$|W2Sia@Ay8X6o-oMo}ln#+F z{7hc;yWueiftG*D7YGq>UFSh?x{W1S_!A!n3~I>()dEHIBYjL*Wr#RPwxFM)tw&>} zPq!4@N3g3}c*rj-jlz)Qlq$ml2}hE*594w}ssUNfvJ#-J*>pwlK#Ey*^_CtnU!Yw) zC}w;qUCujI)36AyO{hPWwGn74(@2=qlCz`$*`#bih3aff=A2Yg|5>tK1B4-10~leP zr==0*9hbA~SyvM`0$X9FmYL3MgX~OI<5ny$`w?U)sSJ&z#lBRpk5Tw3;(2|i(9@;_ zVd%sXNRm>b3H*4;R!~a;0zU&k00ICG0ETgJRO6}47;pms09Xr?ZUjgMvI77B001!P Bx()yU diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.11-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.11-legacy.zip index 5d2ea6db8e2d6341bd34ab217c8201a0ffcaecd7..431138261b409993aca8e5c093dff1be5057ba87 100644 GIT binary patch delta 1097 zcmV-P1h)IB2*L>)P)h>@KL7#%4gjXPsaDjnGHDnD0083;001PD>;or}LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#< zL{fi=Ayn*fPcOn?1J$wdS$28WUei+6xw(Bm`Oo}O2qi9(X>4L>M#RYxe{&pE~_quH{bD^`kPUJyH^5UXsC-XveP;DL}958$aZkJQx=tCOTdFdQw{y?b3 zF-L~`fsG)X`0|6H@cMragll@Jg5$L9v!ZZ3Aaf(q<#f@;GhbEYao$sFG3nGG%FM1AeT;*(fu}+zPq*2kc`K|P`1nl6XMZ5yy)ay9^t~xHy0(^m^;{Tkw`AGRJGd4=r0ZiihD6r|7cOL!Y z0#UOtZAyzoyM}*U{+hXMq88@W8JPVo@8k8VMqXTOGl(ed7hjdIU4L3a2U;1vAyAT( zIKf_^Pd6nr!WD|u_l4O!8g)!Wiv#HI2Qp*oAT&M#DY`HgDY2&kYXcfZ!VvK2Ld3IO zlA~pzTHC@IK4MucW3Pxjgy@M@n_Y*#R>chkszt>mlhS{Ul2!ukiGe}cIrn&!4-dQB zLJ)tg$PqU~{IZGpc%0pJD;@KL7#%4giL6a8x@l4Ay@G001Hkkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6V z-veO465{aVrBl^WEp5>0*m!#yra!k;xGkmuy_a14T&W2+j;33$v$Ksuh-mN4Vr~y& zSvKh?oK>2^0+)YsGUH>|6i@gDF(e=ZXzpRx;fkxgnCK{fGR42QWKt!Fks?aggW^I` z5e15q%wxe~?H#)qQ2Bi`7LbN+BJDF!>iLJBT`P@5751fuDb9ZzTY@?_~+V72nrmk=(Db$1hrQGEWqBJN95 zBxK|qgzc{oHa1~4{r#o{%HTr&4sr*ULa{XFnYpXqC80@bGFH0ZTz&Jy>pXxJqI;(6 z>=Cvcd5qe+0UaE(8C?&mYN-%_^TshAc9uJj`uK8cR-C>1UWUG)TFCGB#W{L2GbpLiBYNdJ8n(~a>&7cM zG{@)BuQn*~wqf^2>pa&TN7w)+76TmdZW4x#ElgT9qspVNQqLvz zGE|7Npl~7reTOZnsLh`)29ZN=O1K+Gap8=D9*9C4T|W}GqmQ*;M13Rq+9D9=;2B32 zs2}@>*qDFN;6ZoueUJIVx&GU+dQeLN0zU&k00ICG0ETgJR68#W)_(&403r+k03-mD NcmzZS!2@KL7#%4gjaQsa77k3y10i005;Dkr-5e^+P_6+Z$mK0g+maPHU8a{$#J8tR~(IQ_V<zhpH+Z1B6AVYhr6QSEYbm4M<-azm zgN9qhC7|S=Nr$Po@{2Vml+~ja8robv>bj?P3UZ`V;dQ$J6Rjx|G@KPy+%IXmzMevY+i?|u6Q#_q2x2tf(m4sqp zZ4@ofFNyS@StIC(IdKU=B}<>ZTz2j(pm9Y!3bT67XQ(B%yJ zVe8vv?H3Dt+IrGD`zQJU#QWZR*ETl+4TyIGWo}odddI$|&BnA*qX(V7uTIQI71AwLLuYo1H zk;L&jZ1VFTt_~Gu4IN0}n9w8U@g^>Vp#NKv4MSfFrN9YgQo22Us`SrC@Pz(ys*Mk` zXOfZnV0wVMZdr=Nl@4oIk5Rxc1Z#`E&A07;@&81YYw@tvjD=-Tp<`TewwgR7!?r~? zoBtPtG!hM-KEa<&IQ9c3#d6S6qMh{4e67&f-?dn0~9$lE`2aBq58T~o; z`R}cvkeUX?mpFId^|;ep+w}!zsm5OQR#^Ig)UH ze6Y&nr`A@gt$5IJdpeDy%?obahAPh;36^Sg5?1e~^|zLp-v>kA>|$c-xo4ax&Z~2R zwiE=z?xrt;YSMY4T2H{eV7?})lt>R+0Y1UM+QXlRK6|)10?=l8+V5==oC3NyD8Pe9 z#R{6&SV{kdfqPs^P-#U#{cNY2t0E@KL7#%4gl-5WL8y*k=+Oc005^Akr-5e@kbAZrIlV+*LwgE zaqkuAn-IgLbnWKLT zS?YsY76o1k0{KFP;u?XuAF`r!=5+!U?PP>qoC9vd;H=_mm*y--Hb!Hyw9HEZF0G8W?<23Rzi%S#_`rIs2lMU#Vt5VD~&G! zyZb>T{u9!FdI!k-?aW0-VrbWa+6?orPK=O}f$&#*^*D!d4g%HfXr)h*pB!FE3?uwJ zENxdw`IdL*=+IJthf=%(=D5+!IuLGF)n5uHHrV4c?QGN_WGH30Ah^5Jfv_D&%RGdf zd4uB$xSd~BaC8^msS3O9t5MwA+74o`HN2XL3!2n_1Okb88EO@yC)m=_$mf)Gy03W* zD5|oZpt`@_q5k+}em`ha2k4-!(Y3taj2>|e1!sBA{@jceH-2swut%_eJ`fLp zmYFRPzx>K*Gb{SIy<2IjEx+zf?BP<;ZD>M&QA20A=?xc41Pnr-fplBZ+$~P%WZjRE;_!1b|he7lQDh%j+I0+?dI@n|=A@ zY1p-DF5)Pt|G%w${(S&6oVO6X?(;_QpHm6%E8J{Ohdy!y^#qOCDRF~N?^BJKyvjy@ zCQEKoeqb|ei&&O}FQGO%R|GgcMIMx}kEHj$B>=u=fJ9t2uJ228V l0zU&k00ICG0PD46R#l3T-3SB#0H+O;Mg>R)N(2A^001X|_UZrt diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.12-legacy.zip index e62ea14b01761902869191ab1d25160ef07f7e1e..e1e5b3d796ef2088a67a666a1770a04d54800227 100644 GIT binary patch delta 1256 zcmV@KL7#%4gjaQsa6%&G(f!s001}>kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4s7x5P$eSSR=GZNB zf2bahfETTD4ky%qiw*IJr#?OX<|}Za5{i@YD~Th%Fpu{E>8LLx+uL zR;u0sFP10agA35lH+Q5%|*$tGYL%!#U^qV8h^Bv5r zi4_t0i&W z;RD*$P_2xAJE~0UY&>Sh-~XjkRXTqo#W9YgB4K!bLK98M1ox$47OtDgK6kP`*4+9i#se@q{bLtWKP&!KS!&1yeEWVnYA zN5{c`?YW>6aPTd`RE~h*t$Bxuf%xk8%b${Xom+tJ3uZMK9RZc4w76YN90*6#0Zh&= zL23K+p8}%sq7L{~r+~AAWtz7+SI?7CpTn_FBF8=co@T)ee%^4>K;2|sKLDbZM9jD; zb@2n*Jq}f}QpWB#%}t2D8}3RRQ7WS&@Ki2;0Jd($GX7qSI|8c?a8FE&xzT6v0%(i5^K-2v+tinW35FTMroz1oGNh~w;OXJ(rCFt0w+92 z0U1Fu<%m_9frR0Sw8JcT|CrJ8ZhI_GPVUGyP_l_#Xnfn2KcVL(VB+dG^rI%)m(UsS zviwxXOi-7t%TPEu5Lhd0P6J32k2nQ?F<%4GPTLoHvohT2DgTd76gRYSi4gg4!}GR* z9N!V|U|x`k6ooj0GCdo&)i~}{V757Prrhhxt0Hs^38Zu9ZEj02z4&g5X0H_BK#Usl zz`%t6t6uNdtUeg7@lq1DR43Q6h=@$?pmB*3MYUTmLYQqG-tzL&*Ak$ezn(Qb#tar( zobn7f&ryQKZg5cs?10taOQlT`#r2LA*A0002Ac3;8( delta 1067 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 R05}tqRs=`}{saI30028@ZMOgb delta 1067 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 asaE*HrkTYA0024@lUM{u1_uQI0002@L1)AO delta 1067 zcmV+`1l0TQ3Z@AdP)h>@KL7#%4giL6a8&pyu*CcW003|fkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6wgKHJ$|lPXOTo30eG! zhS?Oo9YlY2D$jm@wG&^WOLnzoWu6A#llS(wInxUgSd>nySFqvD9grjd%RBTuL6LSP zmYpVPwh?$Nmn<8(m(xGeP_Y$Iya1~U^sA5jW3a7rX~*(k=M{v*S#hw8l+V!j`b z1VTm0g=;K2{iEtUV&T?loZoO-5Pax&LP*GU={lVb*M75qp;zI}-*t7!rfm|}7Zes% zsb%HOOO)(%J{^57@QHFWv3u^`<}as9hce(1f>3iEjm<( z1efbJVH>)!Q3Y2jE`>v$d9?*C6{N{F%^%)M>Eh3|I6SlOd0rKbMP zhMh10PeYx5S%lDS=jb~^5?l-&u|xisi8BL}R^(YazhL$HorxUOR;;{iKh+LuT!?+4 zR-VtQsF*6daemfBq&Wciuruc)0uG^AaT=0F*9viaKh>Mkj7%tMCnRYwW&@Y5u9w`& zkV7)iZ_xkfJdSZ5UY&?4fi^L}$s0ACDeJkySiq-$JLVC{uFE5rVXrP1OzNUHEs&@v zHnzqUlvKJJ*0@2#jU{}7v@`8p&T!GU3aG-;S)44zf+HgOz;cJ;;!z#6q1dYR)32Qe znZ|e^ed|JQODkBNFn4HbP_X-#R`6f*JgqECcF@?(>qY(?sK>$ennQcPNJNs%j;x|C zLe74F87?Mc-B#X@&27S0Lo%Mzg*NToDRfT&FSMzZn=V_2_qEe{a{%hVpG#!*P2Sy6 zhBUC!XRJi-IqATd&=Xnrbz-f{_@XGpQ=35H#<Ey zym}2UZSo8YkfSlbRW|I@KB#Lr@#IafwcCLgCG1QZ2of`;{$G^Ad*w)YcIlrC`wfEs zMsmeg569wvdJ6fVYdUyjgE27Btqwf{TWrxVZeim+knML1Hqigy{<6tXO928u13v%) l01g0#ad1@lDX_%+0{{SU4gdfo0001!Cj~+VJ_G;&004b71{VMT diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-compact.zip index 3f79ed597568392601b240a56138213eecd11de1..98bcf050b6709660b3ad9ee6d32e00bca331444a 100644 GIT binary patch delta 1323 zcmV+`1=RYs36~2PP)h>@KL7#%4gjdRsaBlZ&6w>3005^Fkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4wNt)_(PwpKj+3aI zsS{Ym@pL%IF5N4Cgx}b3B`6g&jbHuFMFWTiT4qcfGpM1NBGOgjW)2%Jz)76uH62rl zM~EIE9~)f)C^CSXBOhvYTgA$Aov+ep^*{ZY+{EgpP!oCZ$|&|kjw<_-)VSHU!xooZ z0bK<8t5RZ|V4gGpIaosK#?nH*`1#={LfQ6mUzaPzWsUrQF_wG@=j@5wCX-a1_i^O1 zNADIVcCNZKF&gXriR_NOY=&}5fFh_GrayjIFP;%9T5&%C-4+HQTH4#af=d&H?AR`` zcFx2H@+S=^#e`PSXZC~Q&rP0KGNl)iciBxQ81=}>Hk9Rur z=@$O!Y@l&}#EYVWF@mqSX?0QfX0w3Fk5wpTB88&=guOI_-I}LV+P2)zw^ZkEgGLIm z*s!MXU!}aR_|$r-k?n^Y(~9LNR&4s^dH%3#th2sUS6op3vZDSW;#8%YMC8VgvCIH& zW9t#nPkG)byu{>u^y`kAjjHvBX(P0xbv-mi7Zg)}0orb$=gv^L12EO3pd_aN88I^X z&&YwLDN2I0_TD+UnM&AcTJ>Nrx#CmbSytWFpeXAQ`}@?rT=Z|AGr+9tjZazG6qtQN zVD>{j+@QIaFLFrpA;`T{+&|08O?kyGngKUwV*Y_8o$i;(75FLrtaPqe!8FU2R8c2*e-9N#(D-AU(g#h5+TVomV1=3bfhn%Yd zpmeNIei&$a72WX&jCbh}!~G{>PYjxMWq{qE7E_78rj_3KGHJgwz_)EYWY3JNYHB#7 z?oPmhWC7o)-k=-^p*A7^?|T;_*(cL>M<6bLrBI&(E)9DkBnC^aFo!-#+?!b6I92t%rVLVd`~rLOYtoGjb?{Gl+JR%b;KZd`2HTPsiBoT;MmNt$AIQ5 z6o@g3Q-6+uBFcjT|Zp-XCOs5a|Q_8+lad#b28?1p9s-P}t`APUKLJ^35JgYT+ z)i`gdNxn!N_H&hz!`;QYUnOUpJO31Pl)J`tI6j8iS$IfCWhX3<^Iw4R?0Rle*KL7#%4gjdRsaBlZ&6w>3005^F h001Na0000000000004ji0001!djvHGF9iSq000x#ew_dS delta 1078 zcmV-61j+lC3$_UuP)h>@KL7#%4giL6a8$4?2rLW)0083+kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6CdwA zqqhieMqp{#sU2K@?H|zJty29eaQFYF&CK>Cj`VOgrw%W87y;bk5rVxYJ;D^$KuaC||Jx zKxt%v8Eq5Ca&8iUt52x95$n?hf9e$8tCnMy=6`m(UI)W(Blhd} ziK;q|3G0xB0e?UsgQX*Sd&uCo4D8G*a3d{Qx(bz5#uoYpiOrtmZF@v)pe9%_k8k&v zy^AW(F^Z0V#&TgxHg`ncFjhk!Tc@>WmRCkT*St-0mYu8tSyUj_6I5@rI2)1IizkWFp2XHbkBj+{87l|o>IN=V1kVuS-grD$D%p4)**t*7pzgT_wHy?t`G+{LU|(^sSTumRB>1}SRP~b!5pQyQCiO*fA44Ksy{K>`o~O#KQi5eD`r~#U4@E^>JPJwB_`Du* zlV_CY-FJyx;ZlX>WARhuZY1II{+}&+Q~_4sBdhpM0E$Hmj8vs{A`8(bZ}!Y+d_nea z-R?SY-~4+A%>0sM=VI0}jr%j8d>)+AkbFH$ w^nd^7Z{BQBO928u13v%)01g0#ad1=$uq+5H3(^b diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.15-legacy.zip index e6be05ce3a7604c99ead2897d6fa4d218d3ad116..1ba7ede7f95cb822d5a6e610f21f1070e9e6c5e8 100644 GIT binary patch delta 1263 zcmV@KL7#%4gjgSsaC9qN7lpy0024@kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4wNt)_(PwpKj+3aI zsS{Ym@pL%IF5N4Cgx}b3B`6g&k*<=9x=*P$<dtKr ztjE%R-_@R{>iWsxD5Y`G^{JtAt)$!Q>n;{P^@{;;!-T--xyPqEh3xmZgTv2Ce0wKv zZ*eQE1)Oz3BrE`nLOMfsd=y_;;SIux0QpjbHw4=OP8^+o$O^liLU^VDZWEX7;%RFj zcdSFmMaWqiKrfa-%6-(J@iCRULEj%&bQqn{0~nDIjt~7PXJZfGeH&%GF{s)<8sQ%W z^d;qF`LQ%DwV)PVhQa0O9bHv?zxYML2kFjvZ|GI46%vsm-l7Ac)f1gy3RRMqLm$Vj zq`RH7P3`1=&N}rqca+2yh4mC#11nV^2!4p5QtCzyD_&eG8}#tw?9$U4i^F&958!YN zEd25QpaMQs$<+UxWHc-!Z`? z{1~a-_C9stt!SV%F_~%k|7h>K1jmLfMx1gVw=fESi0$@;@R>hnty;XUg{c4DLvvxe zcHmOS)Z(2y-Z!2t+s*3mF-W{R68+7poINgEg1+{RB%#E}BnwQ?sm_t}RH*L#m9cDd z)$ez{8YXrJsGSQ73YU=9I9k{DJ_+)=m_`| zW%G-FDJ~;T&IwBzT(*pP%(plp<)6ggm``adGpP2U>XHzt7O?7aVAq}L9cnK_gAcI! zJYKpLBn6=Cu+?}`j3x_#JGes3IR0GRY4--7eA`gy8-1tCD%kNYFAEBBqq^Pl8`8b^ ze2eHAppe<90EvgI-j%F{mJNLhQjjc;LjsO}fQ6^_wfvwW=Z@E-CI*Ux&5bEXiIwO0 zRh4{xR1M9YKCU@U)_19j=sveR|TmYE;?tO*;kRqCJY|SMq(~VA}=i8Xi(%}sI`r2`Y-5maZ zZ%r;l^<49>UWD;_ytinZ2#ov2@xwC!>RJreb*o16PX;Y+BMN#^k3&&EM*imH-px67 zzgnRU>Dubl87T^y2M5vH_3!qNaqH1r~D8vb=P3-1g-L{sXBL9Fi@Ilv;^4V2j z7kl{6SKyeGV~)7|^lF zrbkg9D7V;JPkYo=8&=&m>uiQ7{EQ`s1qGgCQ3zqm7E z;QG}0KTV7o1p?~siT)IcvY%rIreo&nmr!ACvbPh|ef*RgDo{%S0zU&k00ICG0I9jD ZR;-6d*2Dw=06G(sR|H4~1_b~B0027GYKs5> delta 1074 zcmV-21kL;I3Z)4fP)h>@KL7#%4giL6a8#KPUE})$003|f001PDF$E`)LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#1yH@&C1^T%qUf{_)`H%K0XE6;=?ZRyH-Bw zik5?(H!_SBbnILG>G2kSG9!Ng{2GRaxf9~Sjs|Ve#d>+Y|5iUv(+fRCmktctF?(r_9?@9P9 zXb26?dijozWS?4}U6V@p?iZ!@S8w8a%YW0Ab#|5Fij%=D!>&d(32Np2xKme&rN@^49xPDyJH5LJGZWWVrN;TndRgrmw-%=8;I}lQTT-A(yhW- z=hX!-M2OWKAb%-$!MH|(y*k1~ly)7dMousTR8e2hsbh`Qx!DM=Z;UB#dkN5P27iR7 zn6?YXt{yEQX_^Mf+~>KgCWSDBcHBA=i|!HGT1t11c@vsN#3Fy1ul!pd9O2E?$vOxN zt{dgD$YVI`XbT1x7r1*aP}-51tT?NrDf1NLltL>4r^AA+=JCu7-?Q?7LzkvPW0^2w zI*i0$r3^FAOU?BXJ#OW?#jC6W1p~5Yz;6t);yiP_I`!a)7~m!w4DwW(wael&mtp`Z zjvJ(g{ld(urg4A&9uVnosLoi$eX&!@U=$R4K?5Ze{sHBdb;~h>{dQ21m`i})N%(?W z^P@^Ou$Jx>^f$j&lE#yK8bKxsZ_uIS+Ue075AHipC|SKx*1sR**p>qGp(s2>m)=TT zUqgA8RoBwzea%dN)IsSpaz@lI;w@k9F#8=oPKlkeY(;-)P=eN5bI8oeA{r&%h-G^2 z01btwwikRC&*@>`-ATeD$nwGr|1u@5+VRk8hjyRiAkDwI2y7*|NHn|+i*AT6$m}Et z?gIt)d0$we;op$k`p1Y^n8bzOq-9^nzyTqlz?O^q^P41cg;Kcr9LUWP0V`+BsW1VY zP}s7~wM8lxEwQ+UreWF{4ImZtgY*sFI0Nj;zN7!LdEP=<;=?oJ@-B9DGrg zL2rgr4??Pq5jzpF+#spV-(X$EV`dI~EN&pXoIhyZ_tF0K{J2e){QhJh6#G-(E>KGW s0zU&k00ICG0ETgJRGAQ6@KL7#%4gjgSsa8#5X6*L_008L{kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq4xqZrL)V$6SBE3b- zw5`==9%Vi_5F?F$=h=Qocf9vv50yFbT=lbp<-3+6N2@9M=&|zv^q}zSx6{pqVi+Oo z+X0IgPwE+#zM)vO$pQ$?x-%U%XbgS*YaS;Zf@7g_j1M>pw#Z!h&J4<~gz@mukHD+e zhK{4LDvwuWRkkHv5gRDoRIFzkE6>Jb*P_T$R#)%Sijuyw!mNtg@}~r0{hvd9dzt zsNs0VF~Q2Z3C(1~zcLDZ{-?^X-`5u122F zPl0iV>+MD0jQ!354(>{QfLr2gsx);TXJl*<$ zjhw|Nw21D5C&Z>QHdK4%LNAHSTkjfq%5hLdDODNDB1=Os4dFwcUtOO^-^jf(*Qbx6S1}>F~iK_j7w%ic!jBTx5MgK+njoUmjzB zI;ePl*c;vqj>+ zDMKd?s+fRDYq7SAB=qI7Ik@%pVzYg_g}kmEz^}TUnWRoWlHHIIUo&vEc3k0Ca5&KA zXXW-<>quv_kG*-E%Mr_5DfBU1jeCrL<3@r^lP0r`&s1b2O;@hcE7iY&?E4mU?;ntq z)7>`>@14RlF{q#;)WFpVf1H=pu)iN73CfmwY0#`R5TbqGYy8aDWh_TEDbTvfenY_b zzdv@@o(AcK<}rQDDxU?`-Cw;-_ZHj08NgsI0+KHP{|^8abK!u)McA~$DaJQ{DoPZ6 z-tURz&^zgfxJp)mR@t>8DDUuaN{^;n-a$-pjf*BEa8Be!YGUIJ_+@KL7#%4giL6a8xulw7ePw001Qpkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaAd)obt||Oqz0k zf>OcMKKX+r`2cmG!EL+nMw|8i+f?lR6Wczv8Rw^cXA0bwIJ_^x3tZe7pO>VEmi2^c)2wn&DCwfmQjKSz!_f4 zDk+Ltm*z_N6%pj)2NS1|_QxE~s#h&3$j~UqJ71Ni0GvAWR_rY^r(kqcBU;bqDHT8nrH3#)Ci!8VjPW6hAqy^EE~CSB z5Vex`3Aaz@-iW<8K7$6yLVk-RK$An?-@im5i74g)ore{29Vd{(=cgU*B@)&rRH;`X z7v~EZgqGuf$FWj-_vpU$u?HmATIr=26{WJ=A-^}$Nn)QNlm6D1k$J_nN*3K32&GuA_q48d z;}Ry%6dumec(^6M+u9Ay5&@pmXb|(IQ{|~{GE8;l?-t!1d6K%yI3kbltt+LjXAuNQ zu9KU8216XD1hyp-z5K_ZkBKzUOp>{Q&W zZDvm9)ZtMn=G@th*WgM-DHM@~4sm7%9xU`*w}wE?>elK3#yA*y5|*Py0Fwx!b_1X` z{-#OT1ZkVL-Cp091Ri6Yde1VIoQNT9lzX**llMDAs&RO>?q7{Cg7tP$?*481=iwWw zb6eMNJ$-`A0ysuYlvaO|J7KSe$3)B^;`wBzYf5zoqDif@VF^&0WQuFG9O1q6;a35cFu-$@_D;u$v#B}caWy_-Qiw{*A~e8eRxIp! zqwy$ooEV2_;lxV4|Cm?*|1>go08mR90Rle*KL7#%4giL6a8xulw7ePw001QplT!sq K23!OH0000%4H%jL diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.16-legacy.zip index cf1c5c9fb3db5de679eb304373d7cef8eec3b04e..8f6c8053bbb8674e026ca93b5bb86d74f2df618f 100644 GIT binary patch delta 1278 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 delta 1073 zcmV-11kU^T3b6?oP)h>@KL7#%4giL6a8xNI2HOV&006rVkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaA%D0(e}mm)gLJ z5XGAYuG(|0G*(%El#(#mx?RwKPvszIACXZD!{1!+`O&D5{e^P_f__2HuQY@*xh;R% z@}3|)pEdc>8!LEoX954-f&{xMWqI9M9to&IQf<+`=9-OcCEF`-cX`G`6MqH6=mHZ?$KC-t7ffV-;DV1D9YEQL41d zjP8GN^3N4aZa;JYhJ3~~I!E6#vR@>G>6I6Pey4A5ReX_KQ#@0kj_uF{Ly*`PShfPL z>rcsVJ``uJKFx;p$lz3sY^8%gVL26Jg@7xaNf$jhp>8sYKOf&C46IHbKO)`DKpemN4kbbO)kq$)g}cNSn759MLrj?9NQ2p z=2HGS7;Wf1zhOIR-t3QzxY9N)5!Z;J`|`2dSDGPTUTn7Mlu=oFcLZ-)?BtM^K~va) zOEDe8sam=@3OI7@;^PWm!LDk5LhIYTwEJ#kEs#KeZ_*8o0fpp_{BpISjl4eJ^p_7p z0;;#v%jOj@6#2F$1u$p^2@@+v_H~q=MKVq< z$uVBeX~KXj403L5YxHi|(&@{foMZ8$p$~qEz@n;rmvFWY)<5i8qUp_fVa7iicEA65 zFFaj;W0dEd8a}?7dH&l7)TIvDt#}M57rn^cTn1*8&HdMZnN8!~yo&}2R;3yRfHkE3 zD96X29?;b{76VopdWl?f!O++x?kXYFRFL{&_)5C0XJlG*&8>1 zE&6_qryU&CrVEkUHP>Nh5-7m;7ifbkc=}7Up5U?vtVJwrx^QiphD0B{3fwrW*tFVZ zLP8E}#8+B^KgSRm66SSC8i$}GqF#GOGyY%KXH+GussW2}N@a`Scy>-xUjxT5F#oXD r8az--0Rle*KL7#%4giL6a8xNI2HOV(1ONcL4wEVcNCrs+00000VCD13 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.18-compact.zip index ca31d31c302149e6b7430a481b6beed979833e2c..ed0e3aa7b3f4ac0167dc2fe39c2fa15132856e90 100644 GIT binary patch delta 1330 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 T1ONb34wG61NCssD00000DM$Wh diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.19-legacy.zip index 2a5fd5b7a5a25af134c4601bcfaf03da11af3e58..6c393cfa12e188f1dcb3ed36412ee6c3074f06b6 100644 GIT binary patch delta 1289 zcmV+k1@`*734se6P)h>@KL7#%4gjmUsa9<1Hssd?005d3001PDeFP_wLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#PEN|YDq<91KxR#0o&DmxJPI4w~{o})>G z1L>3l+m#b)*yVFZ@lM-Bm7|tM4-sW6X!1K`743_3I6k}!2?@;@=j~W^ir3-LcR>!; zD&0>V?f~flozj}0S%EK_241-kfcKct>~`PYA(tF72i2_1a~R?DodJI%6zEF=1gy$> zyi&#~`@!(Mn$Hz$9+Vq=85XOZE?6}CACL3k2!m9d(HF8qxvh}&D&3?lI#n*l=z=f2 zcXYaeu}@;5-f{tCPq;e%KKlMMq6ZtSp(Xl|1|p)CQQ37LvR^dWNf25HzKpO$Gat^i zXvFzt3Q-NZiV{R?O(lP++;(=xp~Ogr={VR*A3}6Vk@EWx*h})pgS-V0xO@4a!gk&> z&sH^>;~902b;dxZ8*dwX=Gnud3}tmzLzQ@28?St>wkLH>=-yU8>_ARj%FVFpYmcNk zA(8CtM(eX++^cJSR?GIP3Ug!9(AJ&&Z4M$Xs9Ifd^_l+l=kb3gIz6@%i-<5J&DzBf z;f%sDt~BN_^(XvWywrycur@a_An5|R%UgYD%7VP|98;x{hWUPRm|c9C2CtgURNJMm<{ICZ%l{S=WzLx9H)P8Nj*tM#gjS-%BYF-GWvg@ z%-a~Bf%6bJsqKH#&KUN@OMLCDxpAU8a|Ny~q5!}p0a%Vs#L4cir{5GDWF?VfKL=sM z>>($xs05w1;Eu#(UU%jEs96K%ds=dB+~$G`2Cvw7P$6mv@L6JO62iZxW1DULxM!6_ zS--O8b1#2)Fm+oaZAzXAd)Su4ZrJ?j4wYi^Z%Tod)!u}XOI1T70h?+C2|?Bh9!vRe zR|N2IZ>O$tn=iNER}g^HVz^x&CifpL3OjRhgOX-(Eun)O1q;YTx)w}{eb@K)@YRkd zL6oC#r|lJd%(FWP7oAy&bD<0T=aPvPLSm;@E^mJ_S}`?41DIe9sVETAiNe1MTcg#S zGTxQy5j3y>C2-9bcgoXqI0QO$EXYmMuB#@X56_LC)ma!l91}X_(_6+`Cbxmz5`uO?DzbQI~1>$JX_h5fP^K8y(9NVRov8I+hq;;Ti#Fae^W3WU>~)HRe3-c-;3>Rz5YJ+ z_Exo%jsgGjw!=_RO928u13v%)01g1Fxv5rc={Dro1ONb<6O(KNNCp`N00000<2`IL delta 1082 zcmV-A1jYM-3%UsyP)h>@KL7#%4giO7a8#1YC(IB8007|*kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6pt_0c$_ zIW3_2?^wtz$IlFZr8h6|(;%Bx3tkfboBVQi7RBWR#k>hw0-oIpSGK>-@FKGaD^kVk zx@$H;fyDR<5v}nBWqaQm+SV5D1=7?OgUM$(d~mF{$}?we0W1dK=gCs`Ul4XUZGg(m z7o&yIjkRQf`MujML#W`wF|T2-G$2RKiO**SgrG*Hgg%vj)%%mLimDa_TNdmLOKtE0 zdOyb409BxjU6?EOa3h4(A+ba~CPlt=*p_*i4_hT|%1${w=*Z(1Fn8Z1_ zG_b;R#ykNH^_SB<{&uf-4nXQgAR`otQMd~LA9 zAh+fZ!S?SUB==?Sc1@&jZ8lGKAbr%~|H3nJ)op}-ogTwO z(nPI)(bzkkFdlW}3DAV%JK!-|7(58MB6F0X7&Qpz>NEl2jUM&o*)_VyWBEPYtf&mA zRv14gEW7F@!_&i_T=Ms+SJBZDMq2|h<93sp4yt^N-;$?DKU=z3S&1fWWUoGK(Ku_i z0LUG%l9%+`<2~)cUI%F6CsZj0iTg)4Intkh$zgBZ3#Yf8+WpiavsWGcqpfBcl`)Zr zByJbq&_(wIrMr$3+p&hp+Y#W)h&J^9o$JmMw`2lC_`@hIeWcgue<`BMZPJnefb4EbAY^SxZ_Pa!*#tsPi(BY!nobYgT+wc&#k zxz9pO8RUHL_{oHAPuZjx`l@6oQj(ihkal8i)>H^wP#4W?G0TN;4b?b4gy)1&eT>h9 zco^lPITHW$!JFq$O928u13v%)01f~ShjDOJlFBE{5Ci}K;SQ5C1xN-`1ONa404Ayo AegFUf diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.2-legacy.zip index a6ba3aacbf6a9774fd63fe139682f41fec31babc..7c40089897e688dc918e5616ce23b14c82ba578c 100644 GIT binary patch delta 1069 zcmV+|1k(HE2dxPhP)h>@KL7#%4gj6Gsa8pX?QjDG000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqAgGw0N5|43K|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMVL0ScS!*OM^6>A>gQe+h+I>6YLWgZrr2w04Mhuj=W zyh)5b1g80Z998ZlrAC;z-i2yv-tl+N8SuFGyqGo3TU4!Iz<63c=|Gi3Szf{2Df%Zw zb5St|1QDk#o`d@2=RS%opwK59&touAr+?e4bx|FAYz6s$8jmkZrFI?ZXh6hX5FjIT z!^mZvZHpB9{YK=fb4KY{2@S;D&Vu60a}u-^SIPh2e24#sFoGr)fbxHwtb=Ia_%fQbmEWWp7EoFbD1!_Kf z2RGfhR8FEI0T$dY!nezzhPm-h4qb1`&=NVw)M<#`1sJdUZ~Xx}A&GmR=z7elZeAHK zLHcTv1*q~U=%{VJ;a0sYP@fm9)OnaFnF6U87o4Jh+8$|FBfZx6WmO-8T;0-wjZyR# zU96O(cX>1Vla{6k#T-2Vf`l1@}wr zZftXZKsQuO?0%G+^&rDy0vPWm4`WiB$IHcsEENpVkdT;=KIq*4l&6`m@z~tIWtQlM z^)21IV^#j-qwpP?>e&`-Vgx$zR*XXAq*--(ztCDiN3Y=rbs??oNGi1|h7kwb!fQe@ zB5>kxb3iv?5)O{@@W}8*kAim&ce1v86C-GUGRF8a?Y!Z(55ubNS(&t%_TL&+;IPCZ zKpie>xK92{j)Ghty){_ZAo@(yS`fBtPG`%IheET7RS($`Ki1vza(WjLm8$`eP|^aX z=Wzs5Mb9-7OsJkETv-lrk^StSf>yxW+ei>77D=m0@$z*;+U)K4;P!2#I(JJxl>sUyU&u3 z$SzWHeSp#rKK(HL<@wF5vYXyGa{3#Kl@ry0_yfc3FDL0D8$*dyupP=stpDi^MSD<7 n0Rle*KL7#%4gj6Gsa8pX?QjDG000UB50jSzNCrg&00000;3N0| delta 874 zcmV-w1C{)(3FQYHP)h>@KL7#%4giI5a8&UXu5CL5007zw001PDa0DljLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#7$K_;@T>oA805S6c2iiQqF8K8Ofvpg(2Rt z9{76WvhCxAJv);f(1C#E!p?t0Q4%d|6PYh1?Evzce5M>UCnk_`fjInMDOHe=vnA89 z>x%MiOc6!y>Ax=L&J~~*eRndM3(00G=gR9~k>&NSm}Y(L%PSSZ-P?`zx!td6P0SEU z+DKsdp@LyB!D`?);oDwgYHuH0=B(FNIv*P$X!`dp&<-#-&dcY`c1H z_0Ga+1$NMF`vYkQDq&>`<00#y!&lDyS8Lm_-Q*cZIIp5?3ZTpej9F!{gtDi?5NZOZ z)MmWy>4C;`ll1@Y2x?9>->$~?W{nwc2&IXLe8WOEMcr&br^6euk9%+h&HpIZ9DU>xK|c4#<^=u78QOPgX{ z4#|p;Ojj|t0G+6Z2q4QzehYUE027z|Yx>{OzrK1H523-(#=g&4aea)Ha%wbV>^PI&2*#Hayp3Jzmz5O6vq8wt{yXlt6%#lo zowZt*)j9X3Q|J@HFdUs@~ol4Zix z4vb!L_e61}@#A3%n5i2bUyGj3W{P;*Y%G?1qc$$aTfw%plF~dUL1lHCO2S=BEe;J^ zt-@CZX#f+9)${*VT%7yCBzoYYqC2x#m-oKRC>Ay{TH-geC{qy@M(%~^sjfamkNPNw zO4N)_BDWv^UFQb?P)h*i6H@fEIZI|Bd!+6t3j1V{#b0{{R308f6U AaR2}S diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-compact.zip index 8b8f30dd6e6df12fb50d646808925e61c29633e8..4d610d341050fb2870535a757abf90174364676a 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gjsWsaAY;6T$xk000LQ001PDkOU`@LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#-#*&yT2>W#hbk%hvp1MdisAQKKF1@H5-cW`5P&rKKOf+e&MU-v$W$}mN#DPwUBLT zw`GF+jX@^Mc}#Yk38gd_wo{y1LsjE?_m3c~{8lk5!S%j>ZbfGCkZA1jUA9Q%l}27M zkN-SWi(qZguHD+$;&UEuPnR2AZMv^>U{J72ZiJ1l@=-$ZROhg*x*mUCZcV08QFZhx z(LiI7W}WP7csH^XT9#vJ$$>?;6Zuyt|>FS(AcFbZ{CsD@psxcvPM-kq2&n?dSCTM{?+mIaybiNfoW;cSWmh z9N%yBK6Z9BhpP0>h@5|YTaCKczI=fOr%2!uO##h<4P=w1*6@hcF9sa|?l&l7ABbPr z$b|lqAhxekm_54+Nrw#@0~vR!1qECeaYRcIpR`n8qZP;rsGzUf@J+D)a_`5*s4KXQ z782eb+0H*Qk)2(E4N{;)U7d5hDku){GX4yakKO$~>mZu8?wEh7yfRH^XJ0jaiYl3P z#1MA{zP|tFI}~y%j;JI3vI5#&f=`BajCwv{hr5O-^Gm39VTmhmvU=G%90P9+(R~ zkHg^>E-qnPVLWU>{Tv(v1{%qs==667zVyq4B*9raJv^MgjO@~3=`du=X-F`ViXqeJ zo3Mn)Ed|l?130Ak4vnhbQe-Iy(~q$cl}%Mob|T6yVEunV`Ke~-4pSqv@I@L4(+d}= z@WH9f4PQAg>Z7)-WpUHoTz^+V8Q3F68j7FuWMxva3gA*x3SN(#%8SRG!hP9?1zgmmP$&4o`=1z5Nyyf zMP9{$?eR-9_`*s2_s|iQ%imX9F~}ytb^G=iR^PZANO%J;KTu5oIvMqMW8&uH*jm?y z;=Ti~n(O(#Uj1!zt;%ni_rN&Xnuq&pcf%WLI-Y-QaENk>DbvV#(Y7xMI+`)R3U%6$ z_8t%Us6KS|Yk|o5yeB{_dw!ni;i3Gm)F*2{uTuSdXLS*cAafPitl`hbR!zOx>mWz^ z>tp5m<7Dy|cC0Jyv~Eo70@Qyrq$1&OE~3 zVTXUeAyyEv1ONaB69AKd1V;uz1poj50ArYlrT_o{ delta 1108 zcmV-a1grb03(W}|P)h>@KL7#%4giO7a8xbL7H1;_002}D001PDYy~HgLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#5#O`)7ZZp1(Pk@mqh1LizZ3<2Umn+vHkFj0iBAWHD;M4d{i# zHKN_hFx#;VKzNCjVKU?kUNwb`QvN#$octOAE95RIr+~g;b#$qc?;VATR+8;h3wcZP zlHs%d&EU1#F!iw5NJ02D-7y!%%;Ok4QY|b^cJeZWf-<(F4do(-QYnA?zj&!(oOnx^ zg7cnz7v$U4S;-L4y9-6~7^#~Xt0aVrpDLAj#p z<8Sl+v+?GbL^X|(Yd65G~GrYs(VqQzUa7em}&;d;u@ zg&{EmUOPAl8Np?f`_6w$<>T^dsxoP5|7LzHi?lyrXlx!PjmS#?tNa>YT|RZ4e$F(8 z3Ob}pFM#M%Unbnh+_)*7Dei%;V4CWR2kL*Wu<*j63);A%qC|*C zOEq2*!qa>nt}1Qt7c1dD2@)kP2cPPnRDDnzRVU~cu%|e)6T<&5Flw*LF!DUjg`nN+8y4t2 zGvbynn#oyT7-fHw$D1LKsgG)@T4VZ<@CW8KfY{3FyEj3wYM08c_MB7c%-;-ZZV_{n zv4{M)zH1r5=FK>Sh;r@E=9%@Wb~(qICieKyYtTK3+WTG{rl7zsK6OHgN`jCW7$7AP z)JNiTa}I182g|9pzoF8?(N@&fc)K7lunoIWkz(HZwuf*TG z+#MhX7EB}_SR{^O@Sg`uDNEx$n=5#l<1HAOx{UHq12E9;rU3*GPn?SKe9pC zxWOsjgYy6xV3-Y7%C_yUi!OwVZ=8g?*SSsU_i!P8?*Hund*V<_0Rle*KL7#%4giO7 aa8xbL7H1;_002}DlUoHy24w^Q0001JF&&!# diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.20-legacy.zip index 2d9d88bcbc5a197cb1055e3fa87fab6a5a8718c1..5a1a08c04872bbec42fe253e26e8ca13909ccff0 100644 GIT binary patch delta 1290 zcmV+l1@-#634#k7P)h>@KL7#%4gjsWsaABK_vP3G005d3001PDeFP_wLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#-#*&yT2>W#hbk%hvp1MdisAQKKF1@H5-cbjHB(6h70rT?D(+=!rNIxhIr4{3PgDR zp^#^szX;usW%vO+$`<{#?aM5rcvg9`C7aIsCBv*I?Jna=1Z;QTf>bFK7zkBnNbpdX zcR+-qeeu(&euMr#W{62z3Fl!GH0#8xtlkd5MEIFqq_%WWztJ7iTK0bgjj7n2DTSkk z8o6{T1020Ht~%wi;4&l9bniH;#(o+V8U2UXRQ^Y(?E5FCo%jTQc1QSvDkuN94PnfO zfnX(t2&LW0SLVusYbb=fN-k4{8vgM+MJ9G!eW(NeVKtc06IgAX9RSNi(kG(^`-$TwV~0Ia5^ve%`2gpkKQOjUW5F`!c#E zq3anPB!wD18>d_AidM^Laf>l!LOjz{sY5~{P&3&T-0yE)Ir z{%!srWRkn;!`4?PCdxzLAw3dK$h_F{<*3T!w6e0yakq}g+HHTi5EY>VeNd=F98)D4 zPD>mb!II6*5siyv?mJ??Ikisy9tAKKhHk3J@I+=KD#ZZEdrN@|lbkKQUpq`oFZ2)$ zA=o*kzE~tA2Bl7$c-z%uXoDGNyl>Qa$Qoe6~Xn|sH`u9 zcIFj8<@@XeEsaUqwb@|g`e~cLE8r`)e%#LM9zZN_@p}@eiD)lcpBZ5V@UIWqu9fUW zl>-EY2&{7^NiiZR8Us-Ld;;1^DY>Y&JbQb)7w|KJf zvQQs=xf=Pj_*V2pIqL_FCjS7PwA46?W}$EjMilLLc1uvXO4A@$qh04sC#knhRO{LB zkCyg56t<8 delta 1082 zcmV-A1jYM;3%UsyP)h>@KL7#%4giO7a8x(WSnLo4007|*kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6Ga$s zLVpQ-_1A|XR*#>5ZbLD6g03L=3-D^W0b-YG ziFAN6UGV55O4wya9}e3==0u4ppS5RWl#>fc9-n-*&ymxc#zAsyyaLIG#E-*M6s}8E zm7VMfGlDeXsO@qJ9Egb?L4WPz;o85dsbfARaA?;E%^+7c3Qu%d%5ruZ<*63Uo^UCd5Ddu&DNl`sE z{pou_n&A4U70E9`fiWVpK|)(21pY7-_76Fi=TNS69rE@48Nej6zCgybc##WCH+!(XXSamtWjObwsuO?#Np>tQ?q56Y zp`v%%wlLh#z!gREtU<{5A^LY&HNutREw2|7+E3it>bahPKChu=osc%~MjSfIY**@F z8o+t}668(C+@@I@Skwy~{yhaQXeu$}O3fI57&J4W^gdm?yD8!$ko2ATw^m)|$Q(2{lJwwwq~@Oh&`jo$c~2 z!U(((V~~|xY2(xUjYJ(BN{jph^6}N0^;jw=K-2$3FLH2kc2T#bcnF^>yrFTJA4ePPygdg=1v-jh# z&ybS^@RF}M%$z-sv_ZDz8tlk6qhufM7UO?G+!?~YwJ^xe5Ci}K;SQ5D1xN-`1ONa404P!o AX#fBK diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.21-compact.zip index 42254f393cca8bf97443ba83713f34eef9c46f20..0de398c7a1110b8d51ccd5228f951a0e69ef9e09 100644 GIT binary patch delta 1323 zcmV+`1=RY|391ViP)h>@KL7#%4gjsWsa7TqgyaAP001=;kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq8hz`6wEXV~BcE@19kzO2P0_DTK;@>JcGD@Q{nR8K_e{ohrAh zaKx2_Vqt9*Ezd8B^q*NH=!iLS2|*=GpS@gm?ku2jMMp()o5E6P47y}3h^qWOq))Vr z?oj^=cB6BOF4>5#8rQDTfyIr3*84+T%BPLfGjT>X^kpxRFS&}k^7AvoYVXS1lHj=X zVW9j0&BKs?2vw!h%m~$&dXkPJkc>t|5tt$_CSv|HfH((tNjYoNaJBQDPF@mjq~W#I zt^25ksLCX|X9pPDv|+;co=1#>A%nnjIk#hXe$@ci+X6w!G_peYokgK5ZdK9GX!a-V z5lF0k+8~~JCjuO*u8YnwFz>ByH<#b5hxh?v_v68TZ`ewna{RoLZrODzrS(@leY=s- zb#rZ3&f8>OKCA6t;HT0%fXN(r3!qf~B21;&begiK#}6Ck9JJWm3-Jh|ElD9N=ENMd zTK`drd6rr4ztr3ox^2y1lS5n#tTvVk{OJ})ABdB9NUWFzL|;dl`Vokqj#a@v7`S8$ z%x;o@9}kSZRHg<~y{d2=3mlKn)aD7Wd7R=Svv32UFVkI>(4C&25*JG@7{vL=>{&ZD z8i^p&Vxv%MGrSqDAQp7fm)NvQ#xM7@fmEq5PM#2jeb&%_0r?!4gWfsX_IGe(*B2=(5h|EfdS6NO zI#7OqN0<=?>#k0nQfd#d6O_d#-v}NRQ~Rq(w^u^Hf}8kba9&-XevZ4dE%MA9i4INW zKERo=02NYya#tK1HVZzN*7r#e1tL-v^YDnlT4FluFF!o#d_u|}_R?)PfB9+LEl5Ux z$nL-+pbU{$&K?^NBE$MO)kFA$_0`0dFwH@0-mBfwfcv=W;~%9MR{MqFRCn&-XM3#X^#1o+3nfq>< zy)x?ka^M4{ZUtRchoeQb4g1U9!QRS$4*p#g1*~g!E|}afezk)z^6AO?a$Acij>3^o zqiTTWmV*SCmcIY&Os^WKLy3+09H2}Nklz<|_e`y%s~U^YP3{6WdW$~eOz+J*I4uxy zbDx<)SqD5h7(j{-#gco*+MR4~uoZ%e(m#<&cgQ)TFTo zB4C}0ZS?#NR~e&2Q~_|Mn_>=1@xk0zU&k h00ICG0Ij*HRwfRF@KL7#%4giO7a8&t%u%Rdf003(a001PDZ3QQhLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cF#5$;^Rl#Ho4Z}A2GKuhq`6weGr%SGHZ!Z76 zfZb)V%J2LFb(z39l^97Q_&a|b4iI*CKE@;~w&+CP=M42+*^ZG6{QIk2*MpS?m;0dI zy@3m*$-LQAYQtS}?;D1z;QfPS06u+$qyrROf6wRygHuowN%$x3b z&spn`Qn`FPD$0NjN+KOT6mWMc=LnHMCI zQ7Qw=N%_)+9%WWGoQ|-ZIiwXKI4NujSXl9AHFDC1N!+Xqk#?=C>})3Fo7=C2*~hQg z=kh3ojeu{L@l$|nc}U56gq9**=@W_)S9k)>7lJ=H`sQZMGDrN#Jcz2;ktY-=OWIZt zuzGVb$)fR*pfA=0b~As(b%JC=D|f=umpSJnp{EnPEROyTW}NUbMPF^xT~;g&8EkHF z`^%fCOhH)x=)BCSuwqp)A^!J8W_!7c%yOdKC6`sXUz6|nZ0mow^U0)^!v)QWTyh}Q zF$1r`7|dmH(}=8D?KjkC$BWqQlecZ{==fJ7qq6iiB^h@8iT87-)}4fNsi|vrwO{e;T3ofC@VR&P;$XN^GoN zrl{1=L2oxrtq_Zy+i8go4+H4jS5_PlT$PDH=j~vTSds{8vAQEhW5|@UZ{NtL?QD|= zw+!a^aPUOh z($Qdbi!BjtXC_aATC`17N@*KKD?)M(PTwIm1a zX(aDJfG2<5B2Skp<&kCdJ2h2AUW1wlEW(^U?$dHZ1W5SIgkj;-=bYC-Ocy!rf$F8t zcukkAa-w%NUT+0rOxP4RJ!O%WaL5!yE4JD@wq}8y6@KL7#%4gjsWsaBn^G&|b_0077n001PDfCMLzLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#BD{!F_ij(mxi7l^suHM@KD?^8fEgWY2 zk#uK6hmB`es@?%FmM7tbVmH*3l<>r$bb{tmgFkYw>@Yav!A9VsfjODvKPvNyOj$VJ zyQYK&`LH2j(>Qlbi(piafzb;xUPnOk9swMCH%wC^FfR3|g=+8d@b7PFF!Fzw~1D(6N9m>I-tS%z! zGQQ?XVsBA1mQRX1Usk4!so=w7=Bhz?vO!zeQqKYMZplJ*i{;0+igv@t7{*vP%sIGH zsAc*e@ssZLxW{_CQqa3RO%7Aa($^QDndr__%RxHL+)kS>H<)^G&_sjjNSpRlL&XG5H=wrN`-(fyc;3>#SR z6O(2i`kn%UP)Z$Cj)~p(Mva7WFq#V+coBDW{F>wOlRSUP(r*o7{Z2OEf@xza)p#N! zn}Em}9I&q_E_X^)i4 z@S)KwDM(O#-D)oS+gwC)LXsPP*%RPaEEiylX9iV{U#>*i*)gQnkOCIH(J=G*2EKub zDPxu8ZO?yO#JgAK`zcayh+Ut==Ks?$&2y_FH~2>u(6HL5LDsheaQe`o- zHlVxzwHpDbnBrG`nRQXay-S!9#&G`~dN@0EPHj933sve+NZoq5glkv1Rs@?w-{tY? z(3)ngJ$K_T2|^@SPHe}0I|)iDZ;LBJbjTF=Jk@`6(HL7L`~8{mpd{crFYHCBk<+bC zg7x~ISWfo>bQ4LB1uj3y)=@A{lV(=a^q9&p57{`&%LV>1>DUH&z|fANnFp)@sj}Z( z6q7JJIvrYSRCr1sDYLgoAaXSTSfxn`s5_`^YeZ3(lCGuic#0KvZIhfgkr{dhb*J(+ z0F7Fz2w^u8%TbE_NV;)R?~RGAbccVTDpZU`PkP^1(aa4Oy}9!)H5sGAr$l%rej>sL zZH8}WY&|1|g|Pqc2X|LcO928u13v%)01g1Hxv5s2urxc{1ONcY6O(TQNCq7R00000 DItyt* delta 1085 zcmV-D1j74;3%v;#P)h>@KL7#%4giO7a8&u8Z~GGj008(7kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6NZ*MoKP!$`{{kfSQwoe~6ERA5eLjV7o6L zMnSi7rU~VlS1BIAOt-c_u z+R88Uk{j|dmg5E zXiqxiV)q<>EgJ?{L?oWVd`)d|%H>r}9KiqIjMJrf>r+=a$Seg5>%n@Y|04iZHI(Gk z>3hOLG6d;fjrC>8c8?AL315ajnjYXNsOPrA{1sS``lT!anCEtyMMo>QPAdiCRa(kd zq*R~qmG-o#kMC+#2>5q&ogt(~tU8Z+vyf^LCe!$T6c*I{0Rh*Z&n0^re#*3-_Gn+d z?mx`IJR%z$;9&ve&&KW4ER00hTk7WPobEJgiE81-B4 zfY+&4S9YLtW0mG`Lvx-ZGW_FJu7@)spzVTooby?CB5RhdjcwnZ+u_VzaP#wa z=0FT@#Og+^tz}kYEZ205Iwg zFdM@WwA|G6>NDhx+hHWPm&oi~@)L27frp}B+qK*lwAC7^KCdc&)OQ!7+T1^{rS7z) zWrVB7V*o!*(EsZZXckaQ0Rle*KL7#|01g0$ad1@mo^SgT1ONc|4wE+pNCs5|00000 DfgK!k diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.22-compact.zip index 1a8e80479b0f2130fac58332b1cebfcb73ffbae0..658acc2b7ef452e6897bb941b0247b62b2ff4ae4 100644 GIT binary patch delta 1357 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 delta 1110 zcmV-c1gZO?3)Tr3P)h>@KL7#%4giO7a8%Tl&A}`L002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6bUB{%?TPcj!=iU! z+cxQEQ-5~SLp~v~2o_!u0M!ade)sXJJszQ}I?Ua_-U&7m6mTC^-*^VK)F2*2>^Fxw z7>Bm;ON|jaIM`pu$$w!Gs}jraG%)imNFNB+Z7|cE`O^@89hx0jsHq|cHDDX!e(y

pe;ujNs7fyxIwOId2pMlG(2w{}FEjTWFj8XPE6=E&mx#C9>cN=wEm#`IM z4n$%2NwFh;7^G{a#2;#qAy~xJ;ZTWj7HibyfMq4l?njx)mDvo@RXl1)s>;o7t(wy9 zonOSR_XS5dm{21WqF79pW=Tti*eXzZQxtP9+GM)DLI#nYBpvV&j1Ci|aL%sO{`LW@ zZ?3^*9^V&Q2B;xoqAIQbLId^LMC3{2zvlBg&A*I)KBiWn_WnK(-~Db@`)kjpUToi9 z=mMLEJxK+j{f4=s*(K%OQ&g-Yy-B;R6dk47(>d?IXM#6-vt^HwQv)9@(q=m{JdGuw z3_m)6j@R{8sp}gUtnGeO*2+sfL}&la{k8fK$VdeK9L9hr9aG8&j~B0Hai<{;m(+ns zUlt920AF!b*rAhpSpg+SZl1J7A@t`fRs+GOQx^E%NNMDTtJfA5 zT@IW8ID*6l<#Dr4o6{Yikpofgi8vM8?x6SY7lDu2HcEZ`t4JECb^~n+HLAOl*5XD$ z6iI2(NR`jy5qw*@@f}j=IZoi+Z{Lq4CQQ+P6?jDtLWE!Np+o+>f0IfjO8WT$fUl5&6seDvR4j{gbov z*0x0XB8)))sFjI0w>rxXKOqZBGra3R0ZAvqjS4fLFZE?yh-N~`G8re}0LG{sobkth z#ja0hUD8#6xcDKsAB@KL7#%4gjyYsaEX)RtOpe004y(001PDu>>cPLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#zaOQCr?MAo{6 zDeZ`@1B><~rbxroJDemWKG=YW>Xi#*A_=Q{m%)RFHRZ}VZoq-dlr}TP<3q40vk~0) z;UjY^x&YKal1X*o4B#PTji=rd%2f26`=!fwzy=n6a`I46G|m0PD7GZZwH zA}wWOII_+aM%!oT?=+Lv0AX@VZ{o>_6`{#j>vv{Q5-^wS13$N} zW-6R*-DRi!lF7rGAt9R_N8LZ@Igxn;js>))2A49t8z`8Ze>w0+cT;&#upCFuC6MV( zn312ATWMR@A;0&qk0^f@7#GlN%rlLgjOgwWIOdKe7Vm9WZc&c6y|r(U z2mZ~Lp>-O9-DiIur*TAs)(kJW(;7k*(|suM;I*-xzVH7|inAfNA6S*pB@R&f)D4ks zE!Zw=m_A*EbWP{DOuj<0sr_%(hGB_7H*1&>XEfSyuh3^F>yX`fI7qZ?4~f!|enHZ= z<>bc*jv0aMvX$rk9z(@cz6@QKn2(D+ibU@_uaVuG&31nbEZdJk$l)D_oXD&hbnZl2 zmJ1+XBQ2D=i^9dZwy&LZhI?xsMPBqtb{?ro^GDZJ&vjyfU>o(q5(dRz=q7?e9Q(CC z^nVW4`G%S1^|6nSAz{;|=xjiRpvofhLSxZB;)Xc<*_hL*$y8OTt|6ANCsR500000JUEBW delta 1134 zcmV-!1d;p13+@RRP)h>@KL7#%4giO7a8yT-Vdg{x006iSkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6|y7B{N0tN$iBQLl|6z1X@6td{h9bceWBj2tfI~-by&~d^n1r{5s2yks{a4Ni^MVz=GvpW88 zg+}EHeG^W8{fk+sXekTET7^=~I)>kf;e@{DS<#%OL?W~-41sy317fI|tV3WU4-_J- z`Sn1i5JjB|Am%WM@!ndTd{Yab?6?HZ>n%u5Z~YHgss2GP*%&%A`Fy1=i<>Xv+o~gS zuo<`tT?^QMwabmhfAO0H2DJ~Ax9z~2la0u{3ae?=_w%jN07e}5G4kBK!sR`d{UwYZ z#0o1Oe4pJ2E8=<`+lo6}b73K_*;wVPQ6DFqOIO(v=#H~AN?HOLb?|stzoIdkqai-{ z9UY@nw>-D#cL3Q8*}OGyD0&IRZ-dDNXp!wJO!#?!WZ}V9<@>h)G{Cw@2KE>~TU?*% zq4)k+D9*t)ZmRx%wZD$FUp*=w`RV?uH{wU-+`7anf)&Co3OvGZ*Fc7p8v~-i{Xlg6 zzvA|@+F^p^%P4el(Md7LL;QXV0_`_V!?H1{EJ*d)3dIcGdjQT2)9l-u8`8Xn@0HhqBEg0#l=YGv5M>|h^ zKBog>h%`o&u15~0=Q>cZg)3C?wz6mP+G^I1fh<~?t+^fc>CdA*;Qq74E(`pib+<)- zA-Hs84>HQG-RIGqg&?{C>l}7O863sAL-K925d9D~;`dQ%!%K+ynhe!FFqIQCr1vR% z#W@16Y{C9YZX-1Q{mG@ZkvVqUqXht&tuiD)nh2=**n<#Z|Ji>_>qgtD7o?zuQzmP4 zgp2hRWr-;g$a9xhO52VCaOp60hNB}wd;(aH7Nb06++u$GXOAjl&E)A9uD+gxW{QXG zqi*JAn6@KL7#%4gjyYsaEGAS+w~C000yekr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*Xq8kk>ijMOb=w18kNA zNHyMQjy;gW%7hVrC@LikI=n^&LjTK=y|45iu3v6YI7~WJNoUp^uce*z(Om&iM2~wo zz>Igj3iqY7o&EIkB-v05#6Ds2*gQ#(`CQ`&kvTh0zF{txoRX(Hh3xmZgTv2Ce0wKv zZ*eQE1)Oz3BrE`nLOMfsd=y_;;SIux0QpjbHw4=OP8^+o$O^liLU^VDZWEX7;%RFj zcdSFmMaWqiKrfa-%6-(J^RcIVOUf%+XzWebA|)#2!eQSnvNs9$2#U-H4x3I*YAC0c z6B29%VP0F}`ZbxbU2W~|(eWd)c09Ggac-agNC_(N_p;lcw&JP?iRRf0UOSXi3rxgq z!|h>+Z9OJ`=`RX~&aI=v`=d`E>hC+YnLh3?>5G5WC2$yx+& zZ#MICCv`kypRc6L5MnZa;GUI@O8E_%HUQE_$$*uvAmtlnsRj;;>=bOf58V}}Q*(lJ zskr7QXwzIocawOk(}S{4v_mTzZ+YIT+MEo;7nH|K4k~20R`2**qPS z-*Yg3%QxHr-23hJLP4v~I|>-Y9MlsifXB&mKz?BV5OA4~$4p;b59L7B{QL?q6k*C1c4?U1{ku#PNNrLllFp65>BYNGWmqasPnMyMn_1g<4?3}p&&t9C3CeW~&Tgx^GbvpQzWJ?7TEkYiCAUxm3RlaHrP;xkb zw|$RIlz*0aKfgP26=PmCgFayxP?6weD3=PQObAoyl1aDdfU#fkRAW&Z*l^F zNg6%N#Rf{SMlnXLCy6LSypr|Jaa3fP4+%M0Rle*KL7#%4gjyY hsaEGAS+w~C000ye001Na0001!kOV;nI|Tp$002rmcnAOh delta 1111 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 P6O*6>NCsR500000D@=P& delta 1134 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

yhMXdjfmQ28|eZis&r6KbbyLuUa75R zrdBkh!I}XQ(V?_+qO=DOUF=HVEy$kiT=&iJfdYRovenasS&#@+;8a9&gG-kW^N(@S zgR{K>F@@Pc|G@kILz>_!xFWwP*Pf~L8$z^{YZ@mK-u|tc#;7dcfUsk%!C+FqYjHrx zv_xvAdb@h%{@}Cu;tG?8n=0GxF%ppn7h&Es>BN2=;3oqteUnnez+R zj3_~o7Vy1ZYQ-p|iMmJ=mR2k61wfE$R)P`H>*0U_o8V>`y5%t^|J|ElXi!T50zU&k o00ICG0I|8LR-D;#$N2;R02CAe03-ka005Jc1VIKn1poj50RHEL0ssI2 delta 1113 zcmV-f1g86=3)u-6P)h>@KL7#%4giO7a8wq?1->r?002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaA%D0(e}mm)gLJ z5XGAYuG(|0G*(%El#(#mx?RwKPvszIACXZD!{1!+`O(Ed9-Hu_ANAC#CR30!YD~w1 z4NA*p)P(?Cu93UgwsD-PYGn5~NOxowyDMs2j|$S7l;+T4F+Qd_R_6RogiP*`O)9Pc z1~(6I>(eJ*n~H4!I?JT}52l_VQq!$?>v{F2ke(QOec)Yx99vffv%lLn(EYOcM*Y)C zx*Z+T11kD5NkV;=v`EevMPO`x!t&}+MwI2cICN|9Z2I;B=acwW0XoV2n*>&GY>jEt zUI7!Pn%|wRUQ>9%2XkVd#C>yM#Pd9C4BoRS@JE%<;tslBtSt_6{$uYyy_|>o0)1M$ z1fjdqlN^PA?VTw7YNgC?F|1YdylzNute#LDi&f-|ht>f&D+i+k99X~{5Qw_jU>+_| z=oRIT&4i(b(**>fg@C>pz@in?wl35{Q!k-J|Ehgo68|cBp$IAlm!TE*jCnzblD*kH z#fVdtu9=C7{noFT7u5in9laMwLtxLm-Rs=b5uMt9n2W|5u0si@zL>ICa$#6Te!b>M zT_%k}M$Qwj^zpm*r3Qfm2j_uT;{fGDtpdD00)amC&`CjT*;l8>d#sBNc)@=tNa)Kr zDI1dRLv4N5H_xcDU+J7fINU5`U}o3D&8XL{J&S+bu7!D!K9mC`2bw( z8|rOI#@%oUE_Hb7pJ>+t)v&4;@=Avz8TjCTA%DLCxKd#@1`+D{=t(aAuB=8=Rkpgk zZl7q8h|)GNX|SqN$Fwb>?9GMBZupW_JB-3?6E)M!w9j}y>>iOtL0H5{UkaRQN|C>8 zJ8R6c{$}+6nvmB-GDDU59jc($S+Gdrhg~N0ClU+ogagMx?PFrFDK1b~?!SaqUZ~!G zXp`g3+*9``Dti;I9fEX0Zld_%_Y!};{LsuFK^OV+g$VugC^G(Vne)Q|F(&QQnMJe{bjX@!a%lg~4TFwQO928u13v%) f01g0$ad1=?#s$7F1ONa<50g~|NCt5P00000hKwXI diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.26-compact.zip index 4cd36ba3f6a1447b7e9de748191ff6778da6355c..9665f99587fedb246e751a59faa529cc76dc4075 100644 GIT binary patch delta 1356 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 delta 1109 zcmV-b1giU@3)Kl2P)h>@KL7#%4giO7a8$kbgUl-g002b~kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6)oD){n&(vr?DW)ijtebtFiB@NQ%DvZF#ce; z*mV#PL^a74Q-}!mnfl@= zd0dS2tDcm98yvx|7zTK(D(7vc`}m&6v#2m2p@`=QiLqj9`{Ij|UC-!NgI$`^2# z;`o5SZ@O-_L*dxdF(#GjC)pq1VVShs|IZw(?c^eV{;wVO)P1!zrcFkm?vf+t7E6mZ zunrw?HL5!$_ZVXXhbZ_o^@Ztx=km^bgCoYr3e)U;p25aGVk{~3cXT1qRB3Z?g{}r) z4~jw07B)lhRh$x2+BgC11O;_(xbctq_<&?Ma4Dkv3$5U9nlrB{`D%+ex5(DehPwL7}xwKJ=wYa{u4}r~JlP5B+=hDb4X{bB|u43j9 zRGy#KfkDsUL!9{93^$_}20Ze!X~ITM;}OWFCU4=D!R3actaGD`s>lxH-Eu=rf(wQm z(;im{}@yK6;JO2>>@p$E^$?$LLRUtwFnqgb1!~*#+vfF2L~F>lQK*YojI?Q29%L z7R+)3^aNkSSkiuyh@LK)pBKiImFa|kco{jI(aG)|B>E$?J~-U-@xw|qimwMjj!y@LPsZO928u13v%)01g0$ bad1?<_k+wU1ONa<50g{{NCs^L00000kRTq~ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.3-legacy.zip index b7d8e5f03312a091fbc16e1e04da8192611bfef4..b0023845fb6524b95585668e7840e719de085b4d 100644 GIT binary patch delta 1071 zcmV+~1kn5D2d@bjP)h>@KL7#%4gjFJsaCeOQ;!7%000UPkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqEPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMVL0ScS!*OM^6>A>gQe+h+I>6YLWgZrr2w04Mhuj=W zyh)5b1g80Z998ZlrAC;z-i2yv-tl+N8SuFGyqGo3TU4!IzdJPUP|+X9{X4QLaXE&5tB@wScF8wy~+&T$c~p@E&@~lm>hJ ze-SeOFDNE>_YTv#8ocYtSKCaVu~vwsDa&N(tOvjR0&tSBBL-MJ4k#1fV7BUKGcYh6 zSl8XQqAa**;cI!6-w1|pX7XMX=lFsS@i+4W>Wd@FwA3fJ)L=2svfU&W+J^w#7G)kHy=ZVIg^J+3_B)5zlH)F1S?H%wQVz*=nL&qMiqd`7v}g8E#C2P@g6*`?>)LsOxbw@f)#>YvOhe7y zY1h!@028tS%e#3ma-yPl&fIvw=t^r(WR34KZdE^j4dr`hZ5okVq!CFPSTDJ5>t9;I z>3$Xbz08L1)t$*?G1=Oz-V|=GEt>bX9IOY zw@ea$dwv8_+O+-w=-?!MamSNh0{vo?ZBC8D*+XG2)&-Wx5xUPFZ&tGsxw_0I`94HZ zCq0N<9nqs=-BfZPA!O7c!R2c8Xp+DAn?_dAURmIfd?B+H zm008v){@nlo delta 868 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 C?xoQH diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.5-legacy.zip index 1c7d60be0e52cc55f08a59b6e28e18ff4f871c67..ccc91e217eddfe4983a54d823182d86a32ac365b 100644 GIT binary patch delta 1067 zcmV+`1l0T12b2jIP)h>@KL7#%4gjIKsa8L*qz>u>006-bkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqMThPmYs3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0ki&Fev9agg}gCQ~trZ;4IA7UkUAKQFRl68UA3>T0* z$KFoE&9d&h5!||4{BZFjqcA?gn&YG%+qW0S2piwCzj5Iv_>)64w%=n_#Y`PrA7_;h zNDs9OX5<*CY1F0D_LrWcW(wri9RE$*QCh+6itIcxU@B{WzcjlUI?snvF72Ggb8O~v zE)G>@-C9HfTLUV!SJ0qdtkyqqJW3}5k=!c1&aiz0D{it*Pu!b%=aFrKz}{=68`oVl z=6*lHe6#+$5q0v}8CWDvoCJ7CN?Rs>iiIsmd~*SjE{ud5CoGD#l_hCN*ChqyR&2lQ zDMMBcTS}vU`CoT_fW5O8V0`d31GMLTlfme5MLiR) z$NXUiBPgtrGx{>^*}%OvY%A<&`h9iWr2|xb!5K?&UdU4y8A6#(WFw!DJ~7LFbyo;> zxJuUJar|OS)%{FTQp|D|#O@72J})D)3I`{97R-Eq(#8j9x&+h%YaeCjF+?)?B=`4< zx7w=w#|seKB>TC959ez5&-VW#^Ni;)Z@S&u(I^KsmqsT?|1u4;lN%%`NCt(?VgXOe zn#;aPSP{*oWhLW`Ty~CN++D5ymsvOlVTXSFYMjSxkuX1jMdaLqjY7nj8(G~kB|5fR zE*)flFPsrHu8;X2|8DlMVwnWWXX#Ml*c37YYjI|8@5z-1a6hUrmbp&Zi`y@CCfr&Zs|Szb|;QSmEtXnPtfc6aftp-{g356do;N zXp;YDo8OCD{bCPHzAGK3!_djwtz2K<1DmaX3JXKsMUkFnIklKI@ji(KT&BUJ=#9-C z4Bj7DX|)6}lcn67{@+YgH(Zt6*=(u_%r@pkj_!iBh}O304&7}_-Qp&b|7(TEGJ76q zJbXYrmAW*f!a-5ACXt4+HQ;`Q!>~yzt&MFNIMk+8Ip9gEz)+&UmMEY*AK^Wv%h#TN z7KcFk%nHO*D9r~4m-)J@%NHp_zqZ|xmP~Ypo%ul8`7~7krX!_7ucLB@L{>+Vrd9d{ z6~}baj3XLqBl^dR<6XAT{eMW7|K@KL7#%4giI5a8yN76A~-~0062Akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6hZEy>x0#R_Z{F zY&lvW;r??}0L==Oa@9#LvM_<9;1XLIs4YSIXQ8(@Mir2oWC!ZRh5n7{Mj zwe5;lewEE16HJwrzAswTaxkyu1^0;oYp=3}_U6lYO=2#zmO1t1%8b*IE!;C;UA?R! zU`evENa9(;O~nc1mjxN8K!PAoQ2RQg0u=>=*pTJ5!nH<ZGrUcYvyPIf1gIua!4ju7@WANf&xVZ;CL<%X=YF_~b?Ly6gCVK#0zWA}oHR_j1dZLZQQS<0e9^#Q+0Ls0+Ht?_<{rlvU+U$sRY~WciMA zHYxOM$1T=T;>I zyq()?+~Z(!mJP;ykW=W{21#sTUh7QcTm14Uzu{_t%q=h<;Q!IFUL#OT0Rle*KL7#% e4giI5a8yN76A~-~0062AlSTwc25tiY0001+Kcw6M diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.6-legacy.zip index 4e338b468f5237103b449c29f33558fac0b61102..dc8b7ac3184fbfa22966ae58a927be3506ea710a 100644 GIT binary patch delta 1041 zcmV+s1n&FT2a*XGP)h>@KL7#%4gjLLsa7dB?9u20006-bkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqQGJmQ2`pNFNr%N5da)%BEC3Ptad$&`w%PrJ z`QZ&xz8@$B@{U13Yo=}1QSJf*w_e)}LaGz&|9^rX3Ow^d5ZkGZ=zH6P zoku^wLpL5(W2Szx9=nxJdtvuPW{{&gc;S&q?s15Hl;S{{4?zy zs$ck-H|Z`h&#WUR)JkXQQv2487*%w{COv=;33R*UT<9GY%sIL=fl#}kg7p-8Xe(fc z=ECtQU_!Gk#$E2Wz^F-2WkCkAUtbn7{8&jGw$_gcMus}?%Lt19e8u28nSESi*xkUQ z%gk$Xlyppg)w<;==EIiUndKl9X8K(mw-Cl-Knk@;7C6i4c(U zf{@iXCyynZWU}Crh_`Qe691cVVsmnauP%gN1LiL8iEo(RgqvNQ;#H9z>qkv#F;iL0 zCoxRx<)Mn95H(5qF~1L}iY(i3m++#&BoWk;spGnT7@CMY%zW%V#olGfY=7iCIH+Bk z+Vfd&Mv~sZc*pa2==D zG@H&wmpEv8_`tq@eFJD9y~YZ}8Vr~hqa3gM;AUu*-p5-x>jgp3Xm|o_1BKE3P#K|+ zJ4Yoh<$i-I_yx18Uf!qvKH(XeFbo&dEUO%U#EJE$J?U>*ab$d~uD=eox+bw-U%z^R zi3LiTbzzekO0yWvcnLykqElnaz%zO;S}<8I#Nr&QY+i}?`0aH5fP#g5E=tz}$yp?9 zU9w~6QK+Nlv%1RzvQfF}05#t^jokD2=UHUkBqLK4zlW&JIleLF`R3JJRpmlu zvKkn%(HzAfGD1cUJ-14EuJ2+PM~8QQb`PEq#aeTMx&1zI@`B?!c0orS7Hc3X>R1C^ zFrG*bmM+Jx*b}d?Q<<3}BHsVwK1r-lO928u13v%)01g16xv5quH|){q0{{TQ4wH%l LNCqkd000008ISS- delta 854 zcmV-c1F8Iy3D^f1P)h>@KL7#%4giI5a8#cc9M>)b0062Akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6w6*8{&P3m5U#@rU$m{9F?TXN#If+NJX=c3#`s#%1YhAjc+8z>0 z2 zEGh0ah{ddfC-D*OOsnAMyu*4a!O0~YG%G_!cwp#If=!rzXSmO|kVynJ%_Jw0V1zq3eEzMhPFNzMdVkATpP1DfF zO`3qPK%1g}_~1+aP9QH3PtxlW&c%(^Ghy4$xK3MFP@QavG$7v`0_TFaK+AGyZ*Uv@ zr!110*_mx%)Q;{z{n5{_x^jrxvUPE@7RD?o8`!@tF#jWG%ege(<%8*{38W!xMFP52 zut{Ny%bZJ&1g-$P7X?T09}K4oMk#ph05&C0t`6~kmVQQ0ImQfehr5xw!Jwz%odjrT z%wpX>y9%PCkzFJP0N&oCFBW@?Z83qu9JQWR|L-yIv1Rs%QBL}>?dmunb*y*rzL+bs zaPI!mHXiUU0PNLS_I{vz>j3NL%mV-X;jEqH^a7X|I!<8B+H7q~OJnJAq^T#=F)g)v>=aML&pQcFg3MN+yAa~jnuG*+n!WUlWLW!R$r_p{d1P)h*i6HpBEh0E&~7nstS`t1V{#O0{{R307+Amq5uE@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.4.7-legacy.zip index 0b49cdd184afa7949a4688a1950e7d31da6fbc2e..af48a0628e035ad9c1790ef19dc7b651496e576d 100644 GIT binary patch delta 1120 zcmV-m1fTn*2;d1AP)h>@KL7#%4gjOMsaDwTB~ms7005T{kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*XqT|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%BEC3Ptad$&`w%PrJ z`QZ&xz8@$B@{U13Yo=}1QSJf*w_e)}LaGz&|ANG&VmAv0;=mequEI$B z7POjs{UI|*_T!I1KLy-ev6F->3)1s9OE%3nb_QG$PC^uaoHd#`zZ$)Nb*NMln%XgR+z`e!r%-yVa7TbQC*IOE?3`Cobel4$tt_`Zw;%1qcv@+_)eQEZ z+hj=EPdpl6-MEo$T^?@?)D2Q~^7nCxkTny|pUVl%&m+C_Aehj&JyvF&MkHv3CTQI?&WiL)ji3{OtZ*PsW|*)SEojQT$wIUQj+oRb3|cZW{G5*Q*3?6 z75+AP)9jdEFDnvXw3_u8@HLc&$3xg2Q6>yMV|(pu@hqGbU>5;YIxsR@`Tyyn;aRHmBopW2>)fAQ7%Ro%9%_VQL>-J5XEv;FG7PL{*Zos!=&0XAZPfiBvzk0tw;To!75(Q0EIbmS@X9Fuel zC`(%Osv2^b==(lC?(Eu-1!K7(VK%bOj9#0aFf1%9E$L!#ewt$OAtTri%N^R1tbZ)S zfXyo_`@32KV5aQgfiKRIw`f?O%<6k7KF}@&Qc70=*2&*q*$ktuFQ5mxTsw+GrC9QR zIIp%7Tp5G<^ptpVHaeDC#E?ez;m zVlq@VlWM!;%1FgGt+HrWUr9BbbHL9uFxZU-^eKtAIbwo&R#SxLcNN-j3YYvhFuzbs m0Rle*KL7#%4gjOMsaDwTB~ms7005T{lh*@C26zMj0001!Obzb< delta 939 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-compact.zip index 86d8eb05cfb71530e4b8dc2c0fc198c7ea46a9fe..412fa29b5d0184bf8c6d8386d0d322dbc51fb97b 100644 GIT binary patch delta 1340 zcmV-C1;hH^3AzgyP)h>@KL7#%4gj*bsa8YqdCL$5002}Ikr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4Eu#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqie3?oiimw)b9jFcm&-IE%KLd6TdZ2nI_lUg*ju{8phS zKo#nfIXqIr)evQOxdUy{vLv;b6t_C1;{g+WtK{Ujv&AAB-mknLucITfvYqCr9&9OZd-ptTfE<{C#^mIGd>i|i6TA&;PSuVv0ekcr zwA(=uEQ{B0ts~x2qMdgd7hL{YAyEvV82?_d5S$^{O0q!+q(PcWR2ZHjgmf)M?^AED z{9%U80k-Vm>G$dKtG(o@6WVV(UO7FsA+YRCk}ic)kAYoG``(T*&${(2xsgh+Ciu`b z#mhZ8Gd;|ITEhd|Un7KpiF%6TN>biqhLP_~R+Lzue{9lr`3F-Y0RYL!##8TIwzkO` zg6?D+q;4?SepV-82EvbE3sp_$`_yzWaQMdTlzc&)Zb6HUNfr~91Qo_`*LzMeMNsZ3 zeZ(5)3^UqP8*NC6@HLs2<@@57saHq3NJS3ohTfNd8*hXrxXMG1ByuB=4dFQzT``2r zTJ{QsOx8Bq#+rK!W5mTPdCU@oq_M8U3yWXjC_%%Z5_R5LQZ-it5PcWJvBVHkLZnfR zLPw9-_hjkIvlldsb-|wIFH$PSAMiR%=m%S- zf4m-l;sr|(LV++|JBa_3<)PNG?isndYUb}(2<_DY(u(C2-qiU3WoYnjym|jT#nf&y zhVdo8nZGp+k{;j)vHY0zrHdT#$>HI1iSZxL?c}DLf%LrD|Iy;xA|8Y+g0%FbnLq0D z$(@JdplA-+*HXqD?~a<~0SMRHqdA(-co>m?IWTn0nhqHiQ2sHRUG5FAHd?d%DY-tt z<+nZDa&juAAAm#F?%?^PbG)Uxp)0%YQxW=-PjvN&#()3<`J?23Dx!En#JsKhVhQwa z!%&P0=g^INaaYL(@qIw)6Nm-N@g8w5Y5CL@p3|&< zyvuQ1AQ`5{ZW^pMXAvEL={TAcdwyPt2!UAR}9>6Mi`DD1oV7I z3A|}xw3ES1$;b%|MqeO58PIF`TNf3~c`=Xdz${%P@dsXvKjGAL(#8+_^vY6?OOSur znju*(-6Ghj)xeouN$$`kP$pHu^d>NWX-E(HKxTuN`bvNhqZju%Ie6rPuRLLZsZ>f^ z4U^NT`V44NN=tNU%*eVi$-bj(Ohsk7d`8zpL~x!Wef8iQ^RlQP85$MSOD^W;$BkF8 zyMZQDb+Q>g9M}+w927hP1y6OwAK)(9;{kSc$$tf{u{nK=em!l zK#?OwcI#y|`=^K-gJ`o!4346khqObSKXqAe0aH9J=xOen@dh%abuGf}PqB4XZJ*P0 zW9Qa*&4xYDLTXzEUPq+#TI2|Tef4ynh7wL%UEtRoS$~#chW1cy^v_0uso@6zV0Q}) ycXpE<|MTp$T~JE_0zU&k00ICI4gj*bsa8YqdCL$5002}IlaT~S22uq80001!8;N}Y delta 1126 zcmV-s1eyD~3*QMFP)h>@KL7#%4giR8a8&SRQxr7>004&$001PDeFZ0xLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cj`bTwwP2p*Usr&MXPiwdShX5D;uf$s&X95-H zsdWQapnXr%1OL}qkk$~;UFUy`L_LJ*zWYBU6R`*0oGYKjSK}Q6O{(r3RozFeRQvs; zTGTl%l)R&jTN_Jl;QskIFB#GAS#Yz6rqJ09FWv=^r_&y)&DhptW^sQff-`D}gW1%986=;Pi1yoDLJ2)XVQ2|+g#_$+8J&C!z+|P-92HCo z-c`k8_}-})S+GiiySD&R!=KUE7Apg<(Hc+iz&HPlonE?qHHUnTDBf>FUo||`aXADoP_op;Ey=*-IF>tXT6UGo$h5 z(JN86e%UqE^8@3k2v)i8%7`DD|5vP7l#$zTe0sAM(bFhy;8K5UHJ$uHLkc$cLAnXg zq%8kqQ^N$JrWy4=%FQHroBWjyQ$hQb)8FAXkWshy1xHc8b|#YBPrPckUB-ln&e}U< zlobyco{d}m4ny?GT^@ql9ZiDV@C#w7rED24A-YKOKh6BCB~`)wSq{ZYbESY5ofA$Y zG@@ZrndJyOn+kvEzr^2<*m25-IJeA$5cgwzwk>+WzlJ&fm7PtiL|+SulOW@<&E9`ph~OI)efDCE-^wr79pke8;p#lT<)J~6~YZOy3% zLCWA+0V97s1p|6Sga9g>a_zMp&;-3bW^OP%JD@DZrn7l2|Cxfx?Q3I!(0x+Q;8bLj zB30v*v3RKvo2{%BKIc!FxrGL#{~=PdT3(W(5|U^AIj?jkW9frnW8!qY&W+{x^|@zt z`+DTwZ8mwG(4r$N4N2z5Sec8rMz~1|E?1nk?B6q7{U`a}#H{BQHqHUS$Z-*D(p4u} s{&{%GP)h*i_@% diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.0-legacy.zip index edb60bb67f4c3d24b5b2e7426afb9a130f1a833f..5ef78458fcd2ca9f172be77a0f38c4951ae6789c 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gj*bsa7;25oY`Z0006M001PDp9Ck7LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#R zn-1ylbTfrJ>tAn0e+TS4>=l1%C@X`rMY^Q-1&t{8Wk<>Vhs8ze)XkM>!cyI|4#eh|61os{wIfnNr2{7|srUYYa`| zlW1Mb(nvEVX5(m;g<;l9#5}UBFN>O(HdAnJu%!YHFRBStggT$LG=od zq0iMw&Oe7hVC`;J9%JUnt0elUEfS~DOV~UJQQvCQ`U{TIdHY{eiRA7|Vp_%4?DYD9 zo|?Iu_#IcY=Zw&?0Lb%M(wcA3CMp;btn8&UJ@lz^s5m2=p`d>>Th~g|)}b94ll#~- zHHY9iSyFIfVBlkiR{^+n7vVM|i3-GH$^vN{iE*DlzV?fKpN{TItZxvN7oHHvr030q zgt&Ap6q9R!fzZxI`1<3qTxcIA6vz2MxNz6h$Y}ZptbQRy2 z*~waiWRzE6NHccn$HJpS=gQUw%pXJ87@qNbHsx5&EI5Cd;3S!>eC(B! zdb1nx`^a+-(5P+l-0Z#ELu->naOuofy7gFf+QPj!)pUTZrdWp38_FoU%3x}y*#iAY zbIKaA4!nOk{d>&8#7L#@LUc$~vpU8@Z}V)baL8Isp8|YuLh0UQ?)C&#Oq#?-Dr;`i z=7ZHL%{}NO@Tog+Ln^vUv35fNmAq=Ic3kEu@z{ffTxFPP%TKiEaHVKpk)k2};>r-@ ztX0!6lCr_o>NQ69w{p@j6jkhA`WV}ifD-tFKy-gGHq-nOJf#$Fb%KdT7$U%{I)HDB z^!}cG`OxX?+MMr4kx0P_H-a4|ztv;g4R9yJgolK?QrImuF1K8?H^(uq6;DZ0{)D#& ztK%u@s(NeUR{-JO)>UQR6V%S_JIkHHdIaBkz3b!*6f|P>J3(JIoJNstHcs9fG{&_i zU73I6y@TcKO3MgQR(!^K=Fje&rak=xo6wpC)>}|D-4P<1uKpZ+evI@ii_@qnayoKn zEKy5h>Vz?2P#lXp237NSni#Z&Ha(H2lChP5l3M4({*r7DWkPqHV!>1X_+;VvP)h*< oKLbAi0ssyGvbm{NG$Rpa`~(010u%rMBmk3=1Vjct1poj50K80(tpET3 delta 1116 zcmV-i1f%<=3)~49P)h>@KL7#%4giR8a8$>bYh*G6001)&kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6{!}4GlpX|*g{HU`EzbsH-(gY(>P&NgXY)E$;VX7e0upG5acd+= z3sDp!xDZ{n67ed(=py}Mk8v?amzJwI%rDjGz!1hc0^mzl4~uwpW|-hg)}R32(nWK( zK5hHLP$WcIZvb{Coz}R~L(>kWNUx0~bmLbFA%Exkd4I&#pJBF`3y1NL-e_R03hL4b;_P_k_D6jav>I)j65C zMffYG|37HUXN8fKs0|d3jEjwT^IeiBf)2uL8zyQNhro|6o$V+Gu48ddIeuyMOU>=g zCHF;t^?%Jm=gb%WCEPaaq?Z#3u3CCt)hej@z{kr$1F^^M-5A7Ye2R$DVm){H^)^ni zHych#>S-f-WdM@1Ewb;oWHNub%QMa`X7`+uX5VRF^&>gJ3<5S>1*YvHkCa-*NL%e7 zG>$f#lJQi$VowBM{T*>#ZMPO_Ph#)XKVwRNgViGiRGL&V)P1CaEyP-%E(*CLfmKt< z-!(rVbIXJ#I)O=pThranwhi{(pu&UCUAXQ&^bCk8DAA3bNY|E7rR2)LbdjnjAcH+4~IK7sVeeAzvhE_>q=(R)lu_1CY$t78i&y z^D4E&9B4rUZ2dgSqD-;;MeU}Btwa*_4- z>K}G?E8_O=KRnAB*NJXIs9t1dS$}*mI>?bYh*G6001)&lUM~v26O}f0000YQWKZ} diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.1-compact.zip index 2e5be71710a7af4510fb2fa747626133eb66b62c..c1a178c347fb4aeec728872a307e9013e3a6c83a 100644 GIT binary patch delta 1339 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 delta 1117 zcmV-j1fu(-3*8AAP)h>@KL7#%4giR8a8!_LVtq3N001Emkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6fE*Vf>F~Zx z$CWw+n6VSa0W+|n`dfM|DQ+{-Hy|DA!_)@V*gI^A(0h*pMB3@>w|1fftjXu(OI!jp z`FVnfZ({rYx6HdzPs5_Zp)~1;q@Erdrv+AKharf7lkQ`GuJ91{JW*NNLV{lh=7L5W z4G1_%M>AN8Y}bIOUig2GlK4JJ_{;%nvj6_C`uS}HzbE+hXUrU|LCZ}{meQW#&)@Hc znPEW*lz}s#1)1!jrCY^j~OH(kQ^zT}=LX`bG3sJK|DtQ3N zi?cE}feag}lwm4z^ZuWX3(G&vUk|H&AEIDoDbdv8v<frTg=HO>B(ArCI!m4imE2O)B&@te9U!wvdXe%sFT`_FR1&oT# z&0jh%uJh$&bb;KSK0cv9BL&F+3jiga!qa}32UMGFV!lSXskxECuLXNN0%aEACvFzy z>I20$zby5I{k8yVvVr!sgToKJp^kATTeUyag8I)!-0gR+IuHT$qFt=(wDYi1UP4Az zj^Jy5G#*4w5z&=@sRRaBRhMVMEpuja>3pwsiSut^vRB06`JK1NM*2Z{VKr%YboCx{j}$-sl>uxgPeqh(Y1mW6k2 zo0D}OOzQkpPZdY+F;kcf7k3ewm-KF0;5!F@EY$LL`9imYo`c&+)o#%LC{Qt$ZK_JD z?ss#bw}(S}A4YZ9de@I2culUaIn8&tvr~|1%ub!7+izw%fkr|CnBX3r3{v#ktti+L zu1O5>ZLJ+9K$vYp`SsMaK^awbGh1xiq7Cx>YP#D~M_QN1&>$dd=h;3Xiqj>JcZN)V zZ(qb#9kR8WB5~LO{4T;cuk#F(fjjT< zy-^QFn<*FWOpj#%GK2t^4zEqH&C@KL7#%4gk5isa6SfOsfqA007()001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#Ehva zZGQPmQkh}axS$V;HYDsn%N5N&ge@jc>}Jp|0Th>zljT8NUMwVLItqV4GyHIj@2Sfq z{Y>qk0Mq9~+TZ^Tgh#?` zb7g1OW|;-Pzv>tP#fbp`=Jc|eR8~2|kwGDSj%LsWVbeXhXGnRP z_fPJ)52(~QDkbb+m#Q}==aG%;g#XCL8@%|8Q3fsFwiQB(*HiXSC_?=N`DN@i1P<1* z3gYwxREFxMp8);^H*cD%4H}5vzK+iuUr)tTS(AfH`vIgG6O39!4GB*Z^<*UR{jj6yr!Xjs?C&+|uz)i%9 zjE$K@2Y4BTd-tG?g4VZWwb#8Y0GN6jlfru+$)=~)`~!bM8^D8d51KUcIWP|28Srr%_*`8T*<#j zCq%hKe^QG7LM4XLb)K`U%?d#@ zyEPv-To~!WDWdp#uA-v1_#BS;v`@U`N=Xy>)Z0gZ&U!$%&(#p54%YU98ECa3`Xhvo zH35iOH%cxW-qPq!HKe8wQO4Qv<4iSTjphXZ!smY~YLxqavS>5&@z=s)GeQNtA^0Z8 zF8dYK$SN-t%{EcjLiZm!isn$kBpKk|3y{i~+*5pHpl?jj#{Fxy5mN67p79M9Sh|D; zt@>R8hQznE?kU0K@?Gt9b60~LjTmPrVBjk`T0BFcg*FM}pg%g+JDEp3P6fkUTwvyBLAj?=S+_Nk;??MN(n)pNv z=+q-0!H6Tz|8$M-08mQ-0zU&k00ICG0J#mhsa6SfOsfqA007()laK^R22TY50000| C?TP*X delta 1118 zcmV-k1fl!43*HGBP)h>@KL7#%4giU9a8&gx_&qcP000&akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6iri-A8F42;_rTca+ic=f3Z#o2T{8Bpo!;0TExL5x1~YR;o$b3=ZzFtjdNkt^-AqS zU$&t;Ra+dPtdXVL8kn>jr@H4Mq+z^UtdWZQP*Yp6(a5tDO!)kd$Jn7iU$dwX_LG8} zO))ZC!J#z4Z|bLUsX!O<-vFct_)K4hI?I9fF>?^KKfh>yJ#&PEhC4oqL}1%krWDljkdu;G19g~%4>dAgO;FF3#Y}?l?i)QL7$d3A(}6()YN-pXQX+wwG}XD zOsA_|)5qlIJ53GzqIkVveMiJ-36t~GaL-9^74T9tRmRLQ|Ki`QWIaS8<)ApbmYK^K5}I$=p60W~>*9RWR;dFWr-LDrBYxQwQz#fT1iR z(%W`_{en4X{VxU*eJsFy!$>zEJUh?2&E6C6P>7PIq7ypfeiuab53=_ErDr!Y&8mYb z;q9k0+d3+QwwFrr0Jdd6vC_KpUyV^X(%rRLdPZWqb<=!Ie&Q zZMblF%d*q2zv2_cmvrjt>f3i$wvZx;$$_PRQf&|O>9ZqEn?}Xp*)U$7z~bLiQh>da zQd!N8hQPXjx82>$KA59~z-(i%a3Na5Hq`ao={=kEAu@X~gs^VxBlk9lkTdBm!1ih+iewPeI#X)qc+`3XZ_h&4u|Ey6K> z;G>j9_j2Be9osQ)gb{Cvl0*d2=0lp2<&BVeV2paiq6Dtoa2xi0m-~N$NraN!cJB*vCxuK40hS}8QG{}n#0pVw0x1UI&LQYog( z1xz-;TZaX~#Lhu&neY8gywSoe4I)c2e!iQ=;n>z#g9^J2yY4?BhN+qV`2(MFP)h*< kKLbAi0ssyGiE(gL^(**2Gz0(u77mkX1xN;V1ONa408A1n?EnA( diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.10-legacy.zip index 19fb8284c6388dc2af33de27ea414852a012b13c..93c3f60689e2e852085c1f49f39854d8e6630058 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gk5isa7JivZeY2004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#x6I#YMO!MQ6$LB1=xiFd+ENPAdjF zdP4R!017j=US(FWBeAfun~*n8xn;cPMeB$NlM!jzDj>&LF2qEh6AGd;m_E}sc2KQ|mq~2Zo58f|j51F$;Y|kH{Xu+AHe3o1$$^b8TO9Z~nM=#d z$am9h9Ptg3o^D=iAAEn)-?I4Z58^?^AZ%@vO4lAZQGC*NgN8G2u9LGT{HRK}_`do= zu2&`oVuZZ-H*SyRVhL7Kd&PlzTA%`wNGyP@D+~!1kSx)hUVPIvGgmZUmurubyQ*Ji z00Sw}uNQW56yn)4pp&II5dTSI=<1g-1i=GsDvM#ewkcon@UwpfS}*-#uG}OkY~ZH_ zg+A1P4taq?5zv=7sCRsC;$LYjY~18v;Pgd!uiFe zL)$@LlXd+!C9&({Alt!q<1I=ju!fzn@MZC(3R}=>w(@^ek^feScJL4c6l=(b1n!c^ z-{)0^vHy8$d@`=GjP&LL!crwnvY>P=_Bx%O*#4r5D)woQh)X12#`5klM=i=AvT z6>KEoa(2+=G>~vw7;gZ~d!hgZx|U*t#4^-kQQOfYfBk`ox=x?q5b!n+=NKZOL}Z5! zXU{)s1!@V+J8D9HSl+r!YpNObaMkGO@G~>haov9kemtH^Q-Fsth@F5=?3p!t+6nL4 zC#Z~aj`G%PxPbvO3@@B8KTChxK*CD;pc>J%*yjSGzRRh$12wcFafKTAiv+k&a86S1 z>K!Afhhfqh%@^F)g3-5cpG@zN{ z95R3VZ_4#(HKhA}|MD^iU7#7Z#dfnyTH!2CLRolQ$JdO9WkuK(3}Z4Gb`*BBG!^~` z1}dj6+AC)Mp5?mVORSNhif_GVaXuj5$H9=I9|I369}-jetg0#_mj9%PWc5%>0Rle* oKL7#%4gk5isa7JivZeY2004>;001Na005Jd1VRQp1poj50Cwwn6aWAK delta 1115 zcmV-h1f=_<3)=}8P)h>@KL7#%4giU9a8#{eTgfp5006=ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj65L4Xv|}&g<0d z=nh0n#XPFETz~P`1>PuqE`yybeB4N6)tUpLHyabS_$0Kk`*GLgxsi}_TNGSxviXl% zA7L44_pC_PcNm49+LK1o3r{*l z(^cPwr%D`KIMC@=)UE=eQ?mUJnhnP5jH9^osl+yVM@(+^5e`}4C7Y*f4VSzB#P$&e z`uB_RGsP2s)-CgbFLFZd4fjQL5NVi^OEwU4JPy-72x?Dy1XbUC^;^fJ2kgB}Es6v- zXwzg<$OMYc$L1Bkr&EaabG-}NVW5KnPyhMuWQ=J_DW@+b+!>EZkU$lNXPgYpavo`m zFU?7>648IR*KTQcav7X2)9?)2BOZJC#e_Yq`cut+>Zo^iqz2MR7O_Pu@1AJ(R$c5Y zFo*0v_d=FO_%F0R+%AW>m_5k=4p7sM`$o1lk$a+ZnShMk?qxe+1RxAAo~vB?3GE!8 zmeuK69gdlM!?slp17dAhHuqBHy)w5f~5q>1{zEz7Wx&$4- z`d=sn{ehK6(GA^xrfbacr%_ooVDq1FTUMGdRpvita6=P_>YaX3g+bl7PnkAgu?Pf! zeim@2zxauShnS9wAN3es9b&xxXe~Nkv-e_uYJhoK#dnQsId>OJ2OW-`clJ!{fhdvB z(U&rG`(kS*X3jh*p?3A=)?#L8mXEq*zII@VbrAcpTTpuAzfG+hr^R`hj+E)-?cF_K z%w|a)@rVy`>yBqTg>*@fpE3>pJRu|dK2Ok8^i#O|G1&@T2M;?0zU&k h00ICG0EuyMRIOlJ$uR@~0KyKFRs~1~a|8eY003pB7IXjr diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.11-compact.zip index 4cff3247bea5a173d62fff64356a307e835a8802..b2aa46d608c60ffebbe0918a9c854bc2a1596d8c 100644 GIT binary patch delta 1336 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 delta 1118 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.12-legacy.zip index 695617f511fdef83c883e90b3f202195f072e631..bac3cde6e23fab9de68d620bef58ca281a6bb588 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gk8jsa9CpmJ;>^004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#BD{!F_ij(mxi7l^suHM@KD?^8fEgWY2 zk#uK6hmB`es@?%FmM7tbVmH*3l<>r$bb{tmgFkYw>@Yav!A9VsfjODvKPvNyOj$VJ zyQYK&`LH2j(>Qlbi(piafzb;xUPnOk9swMCH%wC^FfR3|g=+8d@b7Bb=e2;GBKd=3q;CSuVm0yIL0u8j8%YdSOrL7ZGxeXi zr|yDpGm8yznn4Y5L3mCCEqI?Q`eq^wblAao znhBo>cUi1N^>KsHgh7$Lt-F1I-h z&plzfLH!wL-kb8%ig(`!lby0y=p8it9Nm6oNN5crNVb0#!TKdMGjsg`bJgavIhjW? z5$Fd5@*fv6CHQR8uIj<-`tk0Wo$Tsfqkf0}1+aUn_Cv#hQEXt`VqJD!>4UO*tmC$^ z4_0{Ue7H<|HMNqIu&{pqW(T2dW}%W?zCqNx?W>oOzWTW%I|BUv=YNqyDYL`cq%WE8 zY=jGZlvRHS^_FntyM1|q58&YS1Wn;^3mn|0b82OfxN3ayKPXlaHWD8YZDF*fDH?gQ z1cqVS$U*fT?fTJKVz385K6MFLTpQ{2Zc0fyj4bTSP&HMl631h(L^H^$pCEqoi4I^q z&iS9TenhF{8fbBPE0T_X7eTMEhvs6@T%sf7Ce44fXaA?sN_Ky*FZ0cp?rra_J05KW zt<{858o&{y=7d*IV3M#~;xjPhd&+@q)9FV<$rYk|4Xi7Mz<@P`&l7`=bN>kf^;JaY zU%fbDb{rPFPO5-Lnn|`35m48F83-#}ckh1ysPPU~3a+9_*1f_hW_BG|SR^haxp7dm zykdW;qp(}e14Rio%WTNzoracm2vNj$syiVfa0?S1YIlQ$nVTL#Z2&`#oZbNJ(vSgj zTG*O7R6rjP<;-OIe=66Cci+^004>;001Na00000005Jh1U?2h1poj50A+Q0H~;_u delta 1115 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.13-legacy.zip index 1bfff04222c8c147e7b87da5225dcfdb6967a83e..6b575731c8c042f4d058050da65d34d787739a78 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gkBksaBs^1uFUk004>;001PDo&+b6LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#BD{!F_ij(mxi7l^suHM@KD?^8fEgWY2 zk#uK6hmB`es@?%FmM7tbVmH*3l<>r$bb{tmgFkYw>@Yav!A9VsfjODvKPvNyOj$VJ zyQYK&`LH2j(>Qlbi(piafzb;xUPnOk9swMCH%wC^FfR3|g=+8d@b7szc%hn7!OecKfoK-1!XGo0WJI6}g3oZ0qmA&uLiAQo}p$67Cj!rt%^O za+e6u1T#$`Y&h|@r0{>s(5Of_TcD1Px(G2wvk0{R-{UHjXX;ThTpjPL6c&R5Pxa!& zNt9e4T;=i{RyQX>Ah^0M7r@6At|tR=ep)gayH*sxQPuCucOki3g8=rIe3LS=glmXf zpCW=#J=@uxS1&WM0}847d$QQ9pSX^yOc5T_EAs!95W|t8Ygd0D-}Q$y?sU&qpAL@t zf@(B`;SL@`i$IK!PCUaoR^Om~Jd>y`r%`;iUpW(&Khp95x|1c5ZB zzoJ#E;TT{?NNaziM!WN^^LTsDOobFSWU&UNXSTGkKyT%!8P?zaP=I98;2J>P?Atr; z&M_?g6}BlCi>4not-)%ST#}$ZaGg2 z5Q3IsmlSSOH})_}DsoX!CywcG0;&w z{lbcTsUpd2rgGn}D{6T0d6h8cS7bQxCy1L+_Qm&~qG}J=Mpfz7)UX6*c(04djGuMK zg<@4(0SUe**Pp)0u&Jf*?2^!bxxgdy7!ua(aXHUn*@;H8emwp5;Dz7yRI;#GHh~^5 z=Y>eKONf8!W~*OuiV`81qCHccc7E@YnKc<2N3&GE31%4~wCZj4(w0N0 zM{xv3Mv1(rAd{K+#)EWAM&+0!;VL$3P9Q>9jlO4iDu9|pAKq3AO7Z4r2G~R=>NT~|Y@tkNO3Ywai3HAb?6ryIzq zX0O1GeSAr!-t>%FJp)EhLfucORIPRyOgW=_P_H%;@}|)uZcxT0l>e1vP_9r*0Rle* oKL7#%4gkBksaBs^1uFUk004>;001Na005Jd1VRQp1poj50F2mzF8}}l delta 1115 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.14-legacy.zip index 7053dabc7a98546199c25dc848bb9bc58ac518ca..d7363b8cc6a1c5a894c1dcc0607ff282774b9d95 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gkBksa6c4zzO&S004>;001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#^C>1r4u9AzoPpLQM(H;p<*(KzD&!pzK9!27I ze)TEp&TS5?$I^b^)t;y7`pMuZrE$>psiAYNq}%K3E*3uZive)Mguv*z$EP}l?Dx2X z!_P{5dna#iaVx9^oOMAYEC7o_Izx7R6kk~34Z?{4`BH;71ls{l9G!p23cH;`c%}hv z6PNAcX=@;NtV75}$XOadFP1^debk`wF_pSQtc()c^8)}O=uTj7Nq^q3 zR4Td21aQ10`VhEt_6a64u`LNcuE0NW(_1r+z;DbKsFfD&uf(N2yB$Kg3&Zq1p zM17sp6!y$>OC#g~|V$Xy`=Q8_?ZPOq7j zYO(M}JuE$=?0`zyqSN}@I$6zon)T`%V`BWkHPL-_7YJ_PCNwNA$0c-GURM?I~+$^K>an$?O(MpNvBTnMktNT%t?Pi$)ehl@2OMY)0hU_ewO0{ zy;;F%XUSbJEg>JjHR(=p=ZOOduI}f)LZK{)5OW0iK;d-j7yFI&Wm>F4KgrkFe~l$e z_59tYs(2$O3;B8;5`toVxtDA-`-Y2B>=nfrx+-?&{*c$WOF>@m59~$bb9le1Ts*z; zb)psF;fsI3mbR-wH;1_PcQloWXk>$Cvz!{+MsG|VRXkk-(4s2Etf}k^X9=kiik`(3 zn!g+kZ}sV+FA}lfbgYLQsi~GfB|;BD`ipJAhs&!wtYhGduZ~oNFYozIZxkrsDu>jIBr}2agz^?9@QjKf~K`f!#YRd@d zNzWBko92sNNph<6t%e%2y~rZ_?or1+T92!i6ihd&aRzVRK*db|AdYtcP)h*@KL7#%4giU9a8#9BYM?X(006=ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj657(vo;Na# z6?E)d{ps-*e=;L~0Q?$;hPe~s!Hx!P(8YRrz5iA}PUGPKGVn=mL$xAf=SnBi#R=~p zKs3eFI@h`he=3?9sRCzx7J-I^9_{X1Lg@XRvgS1y_%C+-j=7wCy-F;BXl=~UhS>xC zU?I%g30xlH!eu13a2t{J)>^~8nu$|X3>DG7;L+?&S)h7}Mwj_buK^JZ#u$#eP2DqJ9jZ3l-%h@J_nV}DkhfCYfKsnzxtow2wkVHC?0RV@ zI_DU+ZYlNa#pD=JyGgm4&3X2X_B4Mt)>!{>zZ5Xe-T1qSKz|VxnBF|=N!vO7ugDi! z&p@GFtnQJbQAhb-^x!1ZK>ISzkvFZ{g+zQC?CeK9Ni)eu*3AT383lZkO{8u>P37yV zlN+FaLIA0T-vTJxHN6J)dWo9XT+s5l&Ltf_BaNzmBvDN<)v^#X`endsHsW5q6oYRd zi9bCnfrG<8FeZJsq;GUcUhf;Rd{w|C<#;5L4Q$~p9~{jey+0Mi;RcCf1bOzm<%>%Q zoJo(Z1>6KhoQrQJdkuz15&8Oi$pA{r9SLoJ`1K3XYNfrUtJPA5zG>p*6vgy_nz4?9 zYd%@O?(mAskU4|}mXs-XaWz@Ic4pm^c^hvfbl)=mQ-$u^9>5@gm-ODKmAV8Q6YuGP zo+epGFM?S&|Jrz~Ht0k^vIGN7w~8u_4HAdc;I|2``1`@i7DCh+;CpUe#Vfj%7)Ks| zHGjYo_xrqMR~Y`x5UpzMx4>3U%gH|Jop-w)WUY=IJP}S+xGuYTo`s9lLI=&93!L^C z>&07`&_a6~Wg@E}e2}a7OA-@_*s~=L057Xp#&iXpFkg_}R$*?(#?^_nvk8rBbEF^3 zp)z}nQJrqiJKs9`h?{3s2zo#qNt4DhdGyRP5$bM9E-bPUdUY^8pd3*_{f#w&P)h*< kKLbAi0ssyGiE(gLm0N0{Gz0(u!VZ&E1xN;V1ONa40OSZ0iU0rr diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-compact.zip index 091a23323d0b456ec592ea8b22aec1e5b20e4d3e..3abf2b29840a089f42838d340599c79076427b23 100644 GIT binary patch delta 1343 zcmV-F1;F~=3APIxP)h>@KL7#%4gkBksaBpRh++%{007()001PDp#&$9LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#;QQqO`^QB1uQU8-NQ;jI*Y{on8qvb8_f9TH0+!Fr?I$Zon%@4t z`_MWu!x|~P_bh0ZT{&@)Dxz4u>l&qh;di&`PXO`yB{N`X#^VzA987;mfV_82xB*-} z$U-^2K3NxVTjzVXZ33+-4k^_m%{KB53a-XP$roBjz=)oUgj^|DZuC9x5JV3Y57!lO z+SqtV!5BYMPxUn9CY}S_rkBXcXLjrj<(V#eZ&S3}k}Uv&`7GR7DeEl*U)1jW51aRa zIB0ktcl#fUxsg66Uod|W%5NXO`X~*Bj6cM!i>^OHC6>4~6Co{1@72;dDWuHS3r=uN1ME@d;Z)m>De zp1I322Wl}5*56Mg)CRiDKdw`r$2o*x@o>*5ALMs5RBsrsFOH)7MWhRbU{${0?(5$k zi@N5bKf?`F`M;37vp}#P9J2$D|LxJqYsnVuUv$Z!;$vY>JmS^Y$xWX1k_#H8LP{E1 zG-IuETfJxWcvzF)8rJt8Nmq3eS=>>!hwo(*ftQHl#UBL6JOgcaJ6+y%K1v)B*=+I zERCXmWpoN$C)%eVB%3gi8l{XG(?&k_&JKL8PGx_()QaL8fQ_5qT##`ZC6zhr(pzq# zm{4G)V%4IOtpUMRziEmQ!x`2H+V!E4SOY=g-EMtu%ide8lqsiGvIb7n26igfF zuibxmrexI(lttQwMkk>>3_h$mk?yrZRfLXwkDonF{CbOl!ihZg%g!HP4N`lw zmhrRurlgE>W{jOQ743kAK>xiC0av-E1A5MCD2EIa*{x2&<{EHuqM`X*F+8-*$^$A3 zm<>QAEx+&o+-~Z8P)h*@KL7#%4giU9a8%DjDR49d000&akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6wgKHJ$s!d^>-k$fWwh z{sBJo2K?SISRXKdm!)A{YvQVKMa3i8L@gTnW`cF_VYj&OXVj;U3+8^O_?1Z6!Q4RD zU@spUJ58u9zL^2Vdx+NQ{D*ZR*ymL3z!#ggk1Am23yejU=W@Lji#`7Qx0Dz3!Z;$5 z$nADxgP?HnG6k0*9Et}SN1wRR^)JUG(8#7L%vwBnCyQr)ip0y!$+r%PJP0$DzQ$U2 z@nUbOF1qcjc+s!tldWvrfN`2Eidnr@JdU0+>8>x`t`P$?+$*}?-t~WZB{2P|D8VGx zdMH96(yPQC=zBwpVOt($)aoARZws0%Tvyi~*2o~!RKAyTvY?i%LcYLdn+Y(emNFxs z5h>6d*(OJSu(hhNr-u^v+I9se(#r0=<3U-eC-ab9Z~)@#qYH-4DJZp|-T&vy+N7v6 z?Zp9cF_?qrl<3r=mC7~L2xG8d1mn=Wrl@>w{%Nb?Z`+G5UGi)|OcR*_{*k)4UN}_{ zb8SCweO`k%8R0U#0%Xl@_?%;WMPp`s?GTQZn~! zMH!lZ&job&eRo3kUMB%i!3||w?U5jMz(`6WvdAm+%EfB**=C0*w{IF(|BmIC+w<;gdUxr|@{F28nIXb7) zxL8}uo1LrJ%he`i??}>*le*9G5t~g5)X&?=rXx*k6B$i3yXECW0>s65=Yl>EX z;eomB?keH|U_(Dw^=Im}gTI@@Q%k(%fh+a}OnA)j?8a%yZ7vsZmKA~qW|2xK6l_H< z<=bouZqh#8C)AAh+_7QGyM0$(7bPOd?)BKZ>AQPSjq})Fr5%Fv#s6047Lpai-}!BP)h*< kKLbAi0ssyGiE(gL&qFD2Gz0(u77mkW1xN;V1ONa401{Fp@c;k- diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.15-legacy.zip index 0132ab493e5aa42b094d6a73d3f5f4c22431aa08..d0a6334d895fb6a11a659690b08d29fcbe564c4b 100644 GIT binary patch delta 1330 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.16-compact.zip index a93c136c7e0fc30de63ef91bbf81ccee2e5bb770..53d77d0a88b060a659a1ab99b404526ee077327f 100644 GIT binary patch delta 1344 zcmV-G1;6^-3AYOyP)h>@KL7#%4gkElsa6hTf#D4W007()001PDp9Ck7LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#DvGV}*pz!Lq z)6Ioq7$NK10gD$;>KT^4p;)xZ0tn5zGaWW)41N7;9w!}wW1(`44>$_8$Xxl(49c#A z@$k@(z^m4Vj-%ye#HxxpfXHF$AuCv~YwgcA`;D+GA!&B}0Pkfjz}tWSz^Uzm>(>=z zTD)92-NsZ;ZAo6PueXyoTgjt*8i2-r@f>cj8 zNrM6C2QI=H{dtVg`e2t&jzQQ5S~>m{a2Xc%bDJ=fkY_I(7v2$q( z$h&}iZ~D|6t7$83au=8!C`vtg*eq`b!r_tkUHwc}*q*K>u(1XYnmTvqxOCH2bMfu7 zO5h?Hv0)sc>TErdysj3@N_&u2*7%xQk)S$i-v40JKHqN!772eQC@M2SRGt75vRE&B zua7!pFtDD~`u`DmP9g%H2vS(_*ukdFqum-8E5u6z{Vo42hjnhj${kbn{@9*6DQ)n2 zO(-hf*!V z0>XQIdxas|C>?)P?eacv@1l}RJJbn?u4A+V(O+-l$MvUS(c|YH>L2cpLX}(CZvHNw zkcG-HJxc24Gl9#e+|eF_w&5bBley~nX9bD|HIXh(7-#91P9y6pcpBM;{3I_Lf0u}% zhENCd$Oj)3OykI-phck`Usi%lVp*g1hmfs#rFOyq_3D2Mpa5k$h)%P^l-WtA$}*8r z&w?B89;pQ+W^)Z;SLqe_d5=H~ZhPhBQsGvQINsw;wOYaS;RSadC8g*M{a2g8%c%=D z8w-6sr%D4@g}-NV*01N}C~1p8$m?_OWsUeZp#bBz?^OY3k)mOE@*$2-(z85Q0ZZmso}&F|Wj23xUQf z)|h`3K8jf|w}p%ImWL=CiZAYhkdSPT(CV%@`v>tboM-`%etKz?0+CN~rEB5T?JxUw z9+{7DIbaY3Z^}F2F;L*tkB>W#QKPp}7!xO>U`9qFOwUhcah`63It*b0t*+)wm zKMfAR+x<)|ZTs65e^5&S0zU&k00ICG0K5&ksa6hTf#D4W007()la2&P22TY50001P C_m9E= delta 1116 zcmV-i1f%=63)~49P)h>@KL7#%4giU9a8yw4p7b&V000&akr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6olX{3OHiZ(WLaAd)obt||Oqz0k zf>OcMKKX+r`2cm4bHN_~V(TTe};%#uB$1TGHrc<#9Bo1f$) z(ysw9`b;21FTl+n)IDmyd#Rlmdq`ndvp)LY;^5-i32(wZGECp3-sN-XKqMXjKG&n} z!gSzfkgitSQe9kuV0SyqJNn(b%Hrn^)JG{nrbIshmW3mKVvlNO=MrMnOKj4WjEnm5 znveJe`!Y#HUfF4?B8`$$t!PNgiNwWzG59MQW{1(3+MaC5TNpH$h1fi;Grnv(V_7rSXm_E(4e9%mvend3_IX@Ohv?-Q{~hJv~P))^iE%w{^q z5tOfn%04xJU{oGA7HD>0x>vsAF~h~C;Hz-lD9Z`Jk8+Wr?yLQq1KyZOf`EQplK~L= zRP`{y2H@GZWUqWKKJ^+-nl_MeWcga##*~tv#}3 zu^B2`@ziArwzr!Lz_%46Rg3coaJ3t&2tx1AvAWd}$muvq>QIIbNlU+I!@X+o+|mzI z8L7_F;+5F^i8c)zs!}o_8=+BF>K0O9nMgzx=wXSz)cs|rjb*2CsEP+GjEq5WbQmvp z60LK8+*!ri4Jz*DUVEGr_srHEy01=^_0|*{+Xj&G#%RYZT5@>o;Xl4@paw^#^=?Jk z)eC6DzLROhMu;(5hyrci5lp?i#R?g_nHC2)i7I?*;c_a1w8n-6q@Ydlk(LC5BEC=) zKb3Uvrm()3Oqu3>;Ksj8R_TaZ*9*^JnIG+crE`CDZ^9T@<8sT~HSUeB$x}Qc9nUGQ zg$&%O9w?*%CXT1|1%Kuy|1`9`lVsc}DzKIVc^^o4PWfF!8r=;$OKEk{p7B39f3fueDNzEmh5+HWG@#q4ANRzZc5vb6B%+soWp`?S zH9zuU>D03&>EIiYN^=j~!eO@=t!*i8ofmv+&gK{lBW5&Q)hB)bc_>mIux&6Yp9nnK zuX-FdEx;e$V5=#{k@KL7#%4gkElsa7rEG~4?G004>;001PDodhS5LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#j3D`>jI!%W$#+DXfee?cGTMi zTa0qmN{{0hsB9R&bL2&)JGg)PM9vz58AYcG+Od- z94m+9D_7NRx2J9Y1g(ybCFW+0POeYMm@Qo;I;SWZRHSU-#;~Z2SZ05C(Vg6a0sz31 zM;r=J(`54mO)xAG#8*V)A~oISYKNLWujk7O))BAeJaA}>_?^NMPAO!FrIWS+FJc{| z)ue_kMFd>?I)m4|QFI|qH}r#&?qRDOk-k0hxN{v_rkF6;#9crBliL>XXTZx|q$)*i z!k!S?#v+%-4-M{*PP2bIpT>{DAEU~iqSKDSw#kfDt{`2tTr6}PYQV0=@sWbOAS!U& zE&#NTSOV5!beOU=k-L2WxpiToKJp1+0z?yREcK(;x_;9h^ za*u7(`K-GW9e-3k-xp-)NFO51At|`(T$UIKRaUmCGaL3#5+#50f1po$k-1yQ8qjrn zo@8(==IX>-iPktgiSuOM?kXqr`e@<`Y(eQeRDRrwFs@E;{J7TKf>-GIA97mm?w7U3 z6S4^7UG>Lb*pgC9kQh~0G;2RYE)g56|7C?OBu;h#0iT>@4lP2lf+3Xnq|k~v73BQ5 z;-p)O>N^Mt4bXq#e6J2~qi-&Katz_|lY;exFQAzjGV$fR zhRR*GxG8~X29}Nx1T0<%t2leJ^lTdPV*tE9QRw`s5+gZ32_wU9da)pbe@u~C0(6@a zC`FqWf!R+DSnl;mlOLxS#*&h|adRX=x$ze_7z`|Y_+vR z(>5#{!US>8$;SB$H5wToNdv=0MK!U>#-Bvuo*o|eQN(5$`0)iCiOZtv=C$w(e8!pU zBlGGp;T+wEe<0#o+R3cpVC^OvM}jW1aN&XvJ|};rN_DP~dgx9)kWVwCge&*sim5(v z^o=^1Jq>8-ByfP#x;i)8RHP3;Ax(H1oi^L4(MVip4nW>|?@FbWUT_uqjSEpPw~bd= z=-|mpv<_DHxex*AOj!iOm3N)sy*Z0#j#X9!_8$R&o$nSYt?9dZN(1C)&lFE`GN|+^ zn$>@T;I{#SVB@8Op?(0P)jWk^+qiW@I!Q2<64DeP<@j7&0&zh5J$By2tg@|Ap!2MU zo?)&KJLj#c8z1mQ?4`j{@a#Pk{oq(pBnD#d23Iit-S?4_#b@N{*Kq${0#^V~O928u o13v%)01g1Wxv5qy;56I&1ONbv6951t005Jb1VaWr1poj506JrSO#lD@ delta 1114 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 t=4Q*VP)h*hx0NfIjkpxHvO$7h|001P^l=T1r delta 1119 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.2-legacy.zip index 4f0b6acfc6204b69af65ff07a49e9519eb38f88e..50f206f869cc3a98ae5ab932f61f15b6f9d7612d 100644 GIT binary patch delta 1330 zcmV-21@KL7#%4gj>dsa6I#_=xia008b2001PDodhS5LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#L#yEa?sD@qHv^9`#?=7>sIr1Y5%`akfFC1_O8)D58T zBH$gI$LEouwS1cjYm62-P&R^cTUUwP(+(FVxf_Unc#B>DFlf;Qu7aAUIax(8<%_{I z-{j=yJ;hSu%7wfg*WHhpz-0QIbv1M$@n~D6BE+y`DAGt*j zL}!n5!VTesvSaYJStsA`okGypj={6nu_5Gi)RZ)a_U^=u)9fS&{KHCpnH#KEl*mp| z@TAU!jC_pNT@M_8T6OK&IXfWtj422p7@sUcUspb6K?$kF7#0#cjFQXV1o1J2b8!ep z9c6goU)M%RtsFpBumgWqA}>*~SjFwZ6ntT%zWo7dM-SxfMX%~~YKQr48L7$l#r{;q zY@*+}Ko8X&@%FqsFrFGkl9^Yrka2!?ot~-}-BIshSJ6VuHuPm!CT8jAIbM3e zQ?`g$@Q$k{mWd)&$x350e|VGTQ_TSbEGs=Ax#+m#jcoqtsY0IhKsxEl)@Q87u0(89 zwXW6wk@)56B_fDP`$t3YbMD!AdZy)@YG+_EPHw;O>2BhDtnI7HlfUu{$h_Q#jE2XO zJV##Z$W+TwMn8Z3c$$qobLw^nt?(}DfOdmpXeg4h!|Hi(X!~bGlwu+qRc}`D7oF;7 z5kZ5WA*9MJ8pDO9$N zD;r9Jb9nj+$?$2#a5E0htoKz|&FoZDcI|@2pTV7n%%n06 zEa>H_C3Sy?X;&y@E!;%6i*ttASHo4uUpPWi)^Mw_A3s6}3ZC)p9YmS(qpG6yYQOf` z4Nfha*8So=@9Lo9d>->0z5JWh4^LjgE&qA%B809<`NuXjn0qfq$QY!$Phc|P3^Icm z9#{a)dbbk}VB@*PB;~Lx7C>C%cw|(k>K1S2x}v%ZXoVypl@6y{JuX=EJO15f>pGJ5 zVb*{1fSPe*#yupVX0jT1STeg^hqCv|WhoXeb~kd+Y46?ifFMGcZjP-8aO=YzI-!lq zq_tC@0S*!X`O928u13v%)01g1O oxv5qLIrxb41ONc;6951t0000000000005Jj1Um*b1poj50CdTZ$N&HU delta 1121 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 delta 1116 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 delta 1120 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.4-legacy.zip index d0f8dea26aadab27daae129c42a19be5706a1d9c..262f42c6547d71366dac441e2c4c26b6b8950a24 100644 GIT binary patch delta 1323 zcmV+`1=RZ137rcVP)h>@KL7#%4gj^esaAUyemV05008b2kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4UFQGzzs3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}5PaI*8>@N)>|FEpwkoe6;^6 zNa~dGgby*zy(rl>lEuS#&>Y78PH`ldkikSptI8wVmQ)gdbr?p7QcL+)Y-M?|NeN1R?b(y z70k7&WT36z4$JAb$mSasS8a@?wBU)i==8RwT_wVoWd+u-0bBhTi#WO|SV_@5vED#8 zr|fT}!;oYu$>LUl1qJu5tkQ3<1wCtkmc|-;e}IF3vy?XK(2BASfr~9A{zK3i+rr@X z(&oroicW@OReOa1J|NH|UlL2g^&sLzLwj}l4nZ@jzddSy-M2dV&mYb<`1>IRR>@r3 zau10Gr;85vS=EhVAmt+iEX`fp2UiLNTv*KmITSHz1ItN%N@cor0t=@`=iwW12dt;M zjwNA#;)e2F+Rj@{pwT?rCPnUsK{qv)f!>`?tGjh`&g2_u-y%c@g^OkFz_#VWLzEg6Hjx(cK-vp|^j^fG~btaO}TE zt8qKC(!zqMeU5UuKH20=4s`t+-N~w9<3h}THUZl@tQj-tz4!X!qWMYpg*%ole&7+$1ivCR?ppyEe|DZ z=&f$vk2pM!bL_oqU3Wrm$4I18K@53%SL7&f=`*t&B1-7hPvSptecUwOX$c1H-7jc- z)x$9SI=QsYGlAs0Q-iLJCLlZKpCXkNvoa^sjrZ2#`epD-TRuQ{K9?CfnsQoEG z)Pe9dO4n#aoCa?#RCi`;w1pFA;_I*|EmH3a|w001Haef0nU delta 1117 zcmV-j1fu($3)Tr6P)h>@KL7#%4giR8a8yE-4w5Vc001Bl001PDU{1)1)aPUjIE*u~%Fy(#seI|cj`r(`;m;-|evb2l3qE<4ti6&1)M6GM=|Cn~B zd4b;~7w*~gXrQ-ff1GpzEoFbH3|`3naT0Cd74+G9m08cp9Fg;vC$ zmfT)BbDez18n*xUtmvK3=B6TdZ!sjTi>mzXqOuLOa(;53Mx{8SlA3jE-QE=kOmHYp z2d_y%6nx0a0$BIByL+8P-o|H)&eCF;P<1YET#CCAXz9ues}cVlaN2)YJ&*>~dllz2 zp&t3=wRRbh!D`cv>Y7V`P5gF4s@JO2n4m2A1$b)RR^@tBw3hMY>E0x&GzA41j}`N? zSYM^N-bmb5y(D0eU3$pcHxGduQ=cDlzqdKaC98brrA1o9N?LENzByw%|4Zs&_JMKm z(W$IEp|GYGYpDgnVI_aT(W(`$w$PiIgb;aU1uB0Krl>GD!5UNkOv zwI97$`qOyzcZbeej7DLT+9E`8gIM$LKrqB3glBW(r`YATG}CUWA{8cFf7UouxFm-z zyf2#^IjeW1C$@n!F<2{(mFX{Q7tL#I26F0_zCrqYu_kx5Ad||gMH5Q7Cg*W0 zh&EGupqjP-R}+6vx`>hFrv}|l*nN&D8u2A138A20d9n<#Rw%FFd+Sh*XrFU-lfPX< z8f7Val&vuOe1Nq~X=tXu#}^l!`5Q+a6MRAZ$8>m=x&HUIzxNE7_@RK}&z^QF7lEI9`G(LJI&4xl2Zi zgQ&IPo(1Jjo^>maL=fujunoSu40_qIrs>? zM1A7{hlakH!Mwc?v(5b%2N*eh)*2pG!+N3>^#m$aYbCZ+Zv*WVi6Z~`C8Ru1O928u j13v%)01g0%ad1>Zl@5|D1ONaa50g&?NCs{M00000OBD}7 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.5-compact.zip index 76a09f1a1e7ab91ece440fec126859450d6be7e7..c046f4207217c7bdd05c11546396d9280ed4e215 100644 GIT binary patch delta 1323 zcmV+`1=RY}38xDfP)h>@KL7#%4gj~gsaCIrC7%5R007Ankr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*{7iuD~(9)S0pd-9Rgw z`^z~8PX2hMNhVQ$c;X=4iIVjjes;ss6zWtOXuYQ}0}{+OboqPvT=2nbcxZDs`(hg+ zdqywM+~C7D@uEqdH=FFV_!3|R-=pPwCoU)AAIcYtQakTDv`P>FkRrj*O&_8O&k8g_xbe$u0J&b=WS^J9U6+7A@Tnxm^<;;e# zDdpAG6qn+ELS!7lL}O5Skk7QoSCK}WDC+(5j?1tt8b=S!jr8Og{UctWN)o1dC%sgF zZ;evtLX{yoWr098il!To?B#Iu6iL^rkA6iwguA67BjJtPu#`jCaVyoRhN#;+zgJF# zbuH}NQ?_8z>C12pUx@!eR!Kz1$7reISTePqZi{4pFHIa?5}^A;zZBD=E`)^R zPc<{(z4SObzQP4I2iPs2d#sp4M`RDw*oI2RWHN7qllf}eY>Au=OJJwf&2k|{S(sA+ zw%}q(lViArhNZ>#D}(SweHjjZQDRZI-dE1*)tV=($sJ-hM&rwq`5BHWz zY208t64bluXWlfifgIhNj>n=>WCXz`vCr0z2yW8jFWrBcYQpKqox)tsv42YFmR<1M z`L9zT8xTYL%Rke6xN+{p4N{ECMru`1mh4rk%>c#<3XimJb62c56>fV*qU2)*}3QzuVFKX{UPQUrw{$=5LR8i3?_GAlcPlEllFuxz?W#e z-_x~!jw(HesAkXHiwN0EeL4a^#SRbyV9ZmyG8FJsF8xdCyc_UjTPU~O$v;L^dIL5& zG_D0MGmy#fexr(#{v?vppVahfJ3lpl5har00iRlbil4R;hm0qL?OrB zBZO@4^k{%p^HEs({k1WmN#R+7$;>4Lk6L?>ns$vJ<%9uI!_^z;2#+7bS|pIA&Qk!5 z)<;JXk)bbP&Zm4WfH@Q9y9ujq7;#!*YPiwPsm6DUSTnJyRj(Ds{)=p4aR>B&=ruD) z3`>tK=`NK##0~@m2T$YGTfIr&9N&Cl_2p*P>jXHPll5~u*r?4yaKZCeY>6w;o?_cG z+M!JN3EXIwQ0>>bc#|xwMALhz8KB2QJ$6_+CEvXe%jtz(vj6Z)8zE3j0Rle*KL7#% h4gj~gsaCIrC7%5R007An001PDhy+CjKLr2)005~bgJ=K% delta 1107 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 h0000000000004ji00000VRLhnoCGljD+K@m003Esd-?zX delta 1107 zcmV-Z1g!g$3)2Z0P)h>@KL7#%4giR8a8zPT%CRW~005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6AF*U?`_`vT^TjuIBfBVvR?D?L9*B-tbw zbUwZC+U&b_S+<3eiHN7@bB~~_4Ian`OA5wF<^xpekI#JAZyIPxLW^LMZj31vNI;WJ zFT{v9uoC@$HE;nwyP<$S;rM#K6NwF81f(6ZHFnoY^xRCVW9#k!0(3XmQ}QQkfdb)b zz!ar?*GOs3vT=A`FSZ`SB%!o;2@UnATAT+bX|M@A__HhAp5whCvH`mn=~S8rhvZT* zIDP>WW?J1ChStoB`D{VC!cPNKtE-j-^JsvoM?2Yn+mmv44}0!6<%kD*Thi86gmeH& zGZCB5$HKW}FQZefAk&S>%HrQLd3M5!+dV7q$GaBmDHDus+k2aXjyImBuQ(?iChodN z$trmpF=?Y&DJ_^1jxPl?fJR0FH*Rmx_OQ6TWY0uEtxWGLxc8T;XYr9|G<FxMZtqnbRUTFDOY?$#@lnlt>h>0i2G4?+GE80qWeSLJAm& zS-AxoIcy?9F_)qf1}ajwb;6??HK1Vs!GgPgf%MjtHFiA(OL$Pieb-UoR!BxvAED64 z%B51P39W`BBv(A3iJ9hgd`hoh1vP9PI*jP%ov$`MjWJ$)H|9}dh??na(&mu?T^E)e zc(wqoOwnaglR4$F;!dn(@Z*H=oa1E^N7ThqCZaV|!Uo|*XpB-nGJ-DGKy-E!?M!ul zKTCw%Nk4H=)(Eqp1G)mjTZAsA9oc#Hv?>&!o1vv`9MMFmI(YXkrQ004rg3s?XE diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-compact.zip index 71f0136c07a8f7e9b480b59fde90e64a6278d319..e668e3f960c6809d3a1063bfeb69989c7702a343 100644 GIT binary patch delta 1325 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.6-legacy.zip index 514056024223ec0ad3ebd61cbca890d5d8996daa..236d2a22767b23b2c6b72f9b72e81331b386f7fb 100644 GIT binary patch delta 1323 zcmV+`1=RY`36%>NP)h>@KL7#%4gj~gsa6zM0Z;1$004Irkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4cGJmQ2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAJz0xQ7HIk#8HBtXJb*IO)SuEr{@cgs4z6ViTyEn`rw#HK;eScDbZI zcsr45QS#}x36iFEJZK#CWDRyY)L$2g3t6&{yS7-rH*DiIv4Tq(gfM&d>nt0KuWk!J z^%k9@l4Yms9wLEskjv1@*YA59=jB!k=3Qo510prl_|c6;R@tt~-aRR&tP z<$5b&sp)sm-p*%Lh_3Jo9^3KDY%Sr;!5& z%9eXU$xNOV*m73k?WhTORxN!^Bp2;D!I8?R$fUmlC-WQ+Q|c~jsLIs1*A&50BLRcX zG%icxRzKl-CoQ9qw%H1{KA73saFqiOq2vNqOxol+Buc(&TZ8dE0j3@9riL=6L`K zccQ6f(EJf~g3eq41YKi|NGtF$!LcoZxIwwb3jmV*0Pw@lYIkL`XPJFvfKfdIex4-; zfFsX$^c8(gPRLDqTRiMB%*O?vEDADiV5VF5o3J3Y>sn{$s8Tar(5a#WL5ZY)4v?B; zy30WDeZZ~TEL5PxNQ_gWo(v2D5EO}PfO2sl`&RV7=XgBgU*%a?)&L&1u=G;m&zYC_ z`OiY?sD7I1;e+ZC%IdM4wnn+|{pdt2P)h*jVG*cM|{r hBme*a0000000000fB^si003c=mjp8gEd>Ao007tof2jZf delta 1104 zcmV-W1h4y*3(yG|P)h>@KL7#%4giR8a8!ra7)vGu005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj64n(4`Vy%1)6`t7KzS}`e z@KPS{$$=51>34x;R!w!w^b@b`pV2u^M|WV^{H>Hz*e1w-FiB>TkCceJ$&z0O=7L5W z4G1_%M>AN8Y}bIOUig2GlK4JJ_{;%nvj6_C`uS}HzbE+hXUrU|LCZ}{meQW#&)@Hc znPEW*lz}s#1)1!jrCYT0{T9xWicz-H+IlYIg zf?hL82vVE8gqD-U4)cY1s>|LXo4->>Kk>y7HuldL-i!S#fuX9?3od7CO!kRw(n{-{ zcK@)JMo(x%6wHt=nPXI*g!!V7N7vPitt$#qHG}gIcEE+>APE) z7tWqHA<5)iB8QXgTnFe4d4mfhU3gQEQ z9x?~*QX(stgt`dQ3`;fV2Mx@kGxx>UP^XoM#;S{#JWPVMHzFQOTVr_lep*L#&lpl>%J z3TPblYC$ZHv&4<-0^DA=cZ$GX=@}R#Y=(&nKmV->vWiek0Rle*KL7#%4giR8a8!ra W7)vGu005~DlSc(e251BT0001hOc4wK diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.7-compact.zip index 4a6cfab0f631ea5e16c34cbdd3aff4a6a9b74924..aec323d997ca688584fc93221a2584b89349cc26 100644 GIT binary patch delta 1327 zcmV+~1@KL7#%4gk2hsa7ZWY`p^o007Ankr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4f|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0m96M#X$)qA@s-!9z)PS#`8g0H=SQ}unpWVIx{iP(OW6_FK4qdXsvp&wd77$}4IwO8k3GEM)-xk-p0BdOrKZ zD1e_p`w#90yOK@l$>m5S&CnNoyqtSMcgRkErQGtSh7!`|$Qt#TME({ztzraOE9ooQ zM?Awrp+8uETTkfC>YQ3zx{MAr%N_@gKUDo{9uSMBJDtxECRs}}VE;~1<(*EAQpJ6{ z)IFcP?w}^Wx6)y{N0Hs|VuzR=kQkKSIIVLhyK)reMj@!s#RfHy@Owq#>~t+a6-tnx zsBz*drmaM97s>w#(7M<5rg6;IH$q}?raipA(0v7eew8j8XFs!M(`R!k(qL3Lq*d;C)J=Bv z48P|k1DT!4@xe#!UP#}h#x004VpwU-92>%Ua&GHyNPyk#3tph5DYXNXbM&btzI~)* zc%%7$OW449Eso`2sL)3Gs)TBfS>Dyx!=eJVKvp}+Mg4^$#{H7@V5v318Z_bu2YQd; z5BNn%)N@8l-NpCp46TtR3#a+|tV%7?Pf-R;&L!c+G$k{doL9P7J@P~l4YNyr>1+;E zo#^EG1x<%#?I|lWv(D&O5#co`?w7zo;1@)HwebrlR$j|Sc5=i|OnO*lxW?NAV#7k@ zB6R@S4*;jS4YXoyREe_vyC;BEJL&%iMn+Bfg*xn9q;JW=fnr10((#NkhduM)X)t;n zhcau9bv2!}Cpz;b3VUfzN-s9oNMi*V+AHUv@C^{io~H_iOI<{d)2W5dond-MsLTC- z_q|dy6rR5Kv&A>flQOu`f~8F{PH|^;L31EN=kU>=wT=WEfw53^?#C4A7+^Bnp)9dE zjX$tQj}@)B#e^^Eht?GA zlRh^(n_~1=Y43@>ok}UEUEowd$<9AXxwQF zfs(AT&(*6zzhP>Yx>YsdN(D|r+(+0BQ@J=QXo;BJXxUl@NA5>Lt}B4`TG95I?}j;j>D#c)1FwN76zGSRb;yU^C{%gP)h*< lKLbAi0ssyGxVfoTC-`i=0|fvB0Lc=Qg#<_jMFju=007!}cWnRw delta 1114 zcmV-g1f~0}3)2Z3P)h>@KL7#%4giR8a8#jsnzJbc008|B001PDa0MrkLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|cj`&S(oE4Bov62mOBW<`LvzfF~?Ww!1lVelR| zXG?jow@(GgE1%*zcU%EZ7uA0rX?(gh{Q?ra$-L~_GR>>`)Uta8jVPRD(JnhA(%~tb zspNquLmTRGeUkCbT-)+=KELYj8~60SmP=p?Y0FW*5X=xZqk|#;Le)4cK*^c}@*(2|e|?L6qvf9cNf$K$bPtM6#w2+^TRlRCuBN+` zysyr>7cP)+oz(%bp^|?Ijwt`k^~B`*{4owR{LVa%d`1+BvYp`1t#nn z&Ze#WFW|Y9kb06fim-# zTCv>RUo#QCDD!R(@0t9{!?PTqHx*ly)exOn;k;1?<5|cxS`>em0=pKqmr0(ZzE0$J zAN=Et+#k!PuWHj5AWR7l@-xDYa4DO<(dCFf=&;n7-ka8-UCw@fM@LszGj*Dds&Y&a z;6qtWSp8Bwt(mzc?3<;=nrCuTrSY2IrPQngH+6;5=^sUMqqSTKWH>_Dxe6_RW?p^g zG)mxLqRG456k~t6y?=aLi7?csl@^|h3_!>VRQpZexU9^*x}(5(kE{KCR^t07;?Gn3AQ*;>~yw?0+RIl;Tu0T?Gn}q-u{k^~fl~>(zwDI<+yb_tb z@3)=!vf2ZZHMZRde42{fTsV6g?tP36Pn3B|wyJgSI(>g-p=G@q;l3PS#289%%lNc5 z8e z|3@1S-9@MzT|5XIueKd`W0T{!o&)w(-xoRl%b5R7Ggj$nYQ>ZYO=|I(Qn=lYo!M=E zF0toQ+mwH3S^#CI)46q0GoIF?qOm>7ef!W*XP_Fz^V^z#C)^#wT&5d_(09!8zFWiK<$i21{e*fu0loJ6J^2v^d8RxAd*!4n z)qXw_Ts`&&wA1HO-f5%y0omk|{HOizyf2dQiCiaW8AksU@DseZ{zaOyP)h*@KL7#%4gk2hsa7|^j^6GB004Irkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4f|A)D%z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAJz0xjWP0O9NTwh37XoW>+*!S z2VftH8BU*n#6o2zixJZ@p=`#&J6b&jgu~&LIX(-EyxlhtI=Cair*T&2Ph(o5Lw-tj z1Q@zb2+ZpuYCH!*y1dr+R!iz%soiPt0g&BQ+hoio5d}zx> zt41Gx^5g)62q8UKL5l_jJMvt&HJpH!2#}LuKzc31k0Y$t=WJPr|0Ifl#^psHsJ_EU zL|8$SM@~?RDkd*H)`{o3TYC}cm`!+UGqSZ0ejx>Z?c!?Rw~Oy~kGx@@CwBt0mLEDJc^98-WiV8!_7s-sHO2mCP^9 zr|JK?vETj(h!bOijByue{a7x_xgrh1>)+wq6yN#w&2Gv>!_X4$Y*$4MOqMXd3RAQ#yq)()Wo^$iz>x=CS6B-*vFHKGYiC+J+8f)Kv9|mj z`#t{dX0%lBgqYf?r>F;koSZ6F7X52&=)3g<#?xUmWtG?Ie`lfpfddM#8BsEA^dFE0 z2S3I6CZ=(D{OT!m%zJm zYp8R{8fmtJK?PoAkhu2CSuzKj2lnzi(MZiRHtR=rV$qJ1>#$}Xj21db_}6`Z8o6mE z@glZkQ_emny)ny(9QlvP_|N>IhAfp!qBhc-Qc|C9>=hj z4qEf;p!93hMno3^TT;pO0UInk7FGYQk$#|1O928u13v%)01g1Sxv5q+!H(YU1ONbc h6951t00000000000001h0RRA#mIO8iFa-br006b8fdv2n delta 1106 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 delta 1105 zcmV-X1g`s+3(*M}P)h>@KL7#%4giU9a8y=owrnQ^005~Dkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_~`*q`ne}fPi^j zls_?J>CpWI?cPLxYTOOT|AB`p1i)#KKgp-JIRTVkW0jDw`V9!SRgv9GTwl1TdnFJp zt#a%rSkMAtrkY<89z$tyHgus-=tWBKrY&O$r#opr9@){c`_*e$A7^G4`!t2va5RH?U@x zMaOL_qzK8a^#L6OonQk7$=2O$h$-v$ZBr-Z%|^)q}e?c7Hc5f3#!<5Yw0 zVIQhOCy8Nyx}45$89fR;@k#csrSA4Rzz#!#9r9VhUe47d=WZ?QZ+gu^tZr1y1ZJy5 zdz_*|c>K6+2v-lPM$SK)k8yMYid?4{uBGd+dUhPn6}6CQzTBGh)Y(=}vlQEiKlC-#(e~wj zMy}vzd<|s;l5lj6>ByO{98hI7hx>4)qA$!tXp6RG7jX5N#T5cq=4tR766uE1sJtmc_qV{V)CU6LA^a?>(rVmWoS=A7Sv|o zlsG>8ftY)^jiiO$Qyo)U67r)|S47j%&m$LqTM^#!IVcE3YD^a^mz()n=$6|!(k;Jqkn&*TEvX3=Wotc5CpJ!GyAx&Q;96Q#Qce#AFB^Zn+J zYzbDXs)VrBl5rggB{Q?JIS^2Jx?GzjbMR+;AZTa)hqdZZO928u13v%)01g0&ad1>t XY_@DC1ONc34wFd*NCs&H00000!uAP1 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.5.9-compact.zip index 6633774e8d586300577733146bfdaab6dc09d65a..084d6aac6c7c4c93950f01e83d95dad9de68edb6 100644 GIT binary patch delta 1336 zcmV-81;_f|3APIuP)h>@KL7#%4gk5isaDpql#vVt007$(kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4nWZ^J|XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE$h0Zk5A#tBEbmrrtwJi3RUt+f(CSsU_>c{Moj-EC#pQbmZuocB%%65& z{+a3>{(zMqX)psW9tG6XvvTW3QFw5%m|aoJ(Q+i?YR?5pDGgAc?L_cgdu+YCJ%K!C zm#73zN(d}XYgOx+bl8xinIZ$O0#n7t`J>R0orO)lIWFEURySKp)dyGP(7~9 zE=9dhf>^D;akH}KQRl@<(u&lC`(zRI2!};t+%(uQxYcu_3aM8;3a$ITKZ1b~4e2|RSL5BopT8O-Z%9aK4M$N8u&K%I!Iw2! z2#&S(R=!E#VP)b20!9HlVb-lpw}8o|Jl^7e$}O4BZS|o>DZ`=W*~#(Je*FMd{cjU= z_x)m5S;@}2Xxz)inJ?W+#^B$4w_;H0{e9CAvczUqmi?CiAb>)w{BhT&gif9C(~(6RE2$0pglc5 zsAtUv!4!O#d6Gm0Qwp0cT+W;bf=nv9DrI?lEJ89$2u& zMHKNr@U!STeg@udUb6bHIp@QzmN`@1G2xot+2F^%M&J#gLXD(x0SV~^Zo83xkxxHI z`g5zMGArZqeHdJ<>Z)*~Ot+kY!x>BKwwEXRBl7FZ7@-aG__opIX6~d? zS)9znI@k*gwwY!C1ovo5zybALe?uPSeK1wiNuV`31XHsC*_dvW2M{4#{QA|im4)Na ufBtv!(NIeP0zU&k00ICG0J*sgsaDpql#vVt007$(laT~S22KS40002&)sUP3 delta 1119 zcmV-l1fcu23*QMCP)h>@KL7#%4giU9a8!DVMkh4{000#Zkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_|^d?5rWFuIKI{ z6Pr*cc*RsFXY2rf9%uM9gs)NlA;lfn$70h&q$<`?$;i~%R|(?Gu#P0Nj;E7~4?pf4m zEB$q0-v`hr+86&Aa4y1cUR3Hpq;=JMXqS(R%UKfB64h{jblL*bJAgR^LlW>qrHtzk ztl0#;k`vbmK=P?{R*GG_3?mL`neq})_ZcVCp1oq4k?c1=h6Xz_qPS(akK?YGvr!V4 z!lum1vPTwHos~U98Qr;hK3Fk))4?4-_nW$6pS6G%I|;YGZJo2kyErBAi!e)wIB9(@ z&>~mQm&mz)1lrv9bQ^J!$(i%yXpL-G%SzRB(Q%#B($&GmJ-FV?DGMT0pFodwoLcnR z%4E2rYwIt?bEmWp&+%1JFH)7k z0>WTG{p zqyFg+k|N1|ApKcrKTm7;&j15=59(U48Df!Pub?|dASm?GLrh3TYYu?|R?N?@(roh+ zmP?0!UGieqk>^)0TEv(sOJ!Y*muf9lPU9qi=ljwX>_S&P(Yo@HpjP445S|ZvlKuuq zWbf|_%%?&0#O@PYiqT0=0V2p?5H7oFuyuKkRFG{;1`rYTte_Fu`_M8)fa46<3Olqu zL$ABx6RYrzKshpe-02d-jw>MtO~S?sR5Lq;*ev}J0}T$dGsaAtc33|W=eV&E;{SC z*fL&l6e_TOGDrR%4{$zIv!HZdX#n@;e@FS#7uS6%WHX>cypzp!IkbRK!}iUePy1(o zpuKvoAcQz`+$bby`0Yhw#qLMZz~WS?U<0J(caor}=>WG{0Jxkw;muA`Sa5e{h(q(J zb3QHYNuIh)b1hat=@mp(t_D5t=gM@glJHl@KL7#%4gk5isaC7fT{HUx004;-kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN*%4nWZ^J|XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE(yvPuQ4_#9<^JY+ac=w{mP4PV?WM7bx1F0RysE5O zAfXBj%a_Z5YB2>X6Ur#z@<5s^k*TK)7p*+PlR#@^)16ur@@dF|XmJ`?HJQV<{l?+8 z!_5@=_5fodQtU0g()my*96T)JQ$CJSz*JstlNSkeB;o~s*dt|XBn=btqh(E%+q3`! z_T^soBklt~1?ag4)7nfXCKR2y7_&pNLJqeicMK#n20%tiM=2|(%}vK6W3E0i_QR## zAjTQ$xi9f-5~*IKU9HU=rW>dYFW_7hh^3XsnF12%{*aVDB@_AC&h_5VTi^VaE_(VP z&KNePqplTyM33{URjPAu62O*8-fNA)P#7>0PIaX8W6#@-t^BvRDJaU*+pc~zpf2x^ zYk7w640dd_7{+`oWL}+vr-g;~Md0PRGSO&>+S&~u5O1zAjVj>!^C`w($95D1UbHuM z8uHdO{bL573cg=>IcQoONRrPFl{`v)9?s8dswdNbiZn2yWj9}Xcr79r=0;BbdbKVl zl-38$G54(LgXZJtyCOrA`hrHm@ZwaLn>q}&bT>(q#xq-UKHiOPTXB%+kbpNbZx~rg zhD8gk`8Ye7B&YAcD)sxUj;-tY()ZQIxxALTHQ{U$mB z?fqXwE5P^(mEtEkWsfSrJxV1j$s-@KL7#%4giU9a8$6;60$Y~006-bkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_~`*q`ne}fPi^j zls_?J>CpWI?cPLxYTOOT|AB`p1i)#KKgp-JIRTVkW0jDw`V9!SRgv9GTwl1TdnFJp zt#a%rSkMAtrkY<89z$tyHgus-=tWBKrY&O$r#opr9@){c`_*e$A7^G4`!t2va5RH?U@x zMaOL_qzK8a^#L6OonQk7$=2O$h$-v$ZBr-Z%|^)q}e?c7F=7l*mn?4``( zc*{0`@^WT>!xtCkEv}irNi#USGhkil*AYflVFFn%iO-9}v0yb`ZMm^rr#6Q0OW$QB zE$2QrFrt_%S}COWF0FptW)%{e0`-LX_Pol$C^Y*B=XGxKKTlVTJ_C}*FT#jB?EP6| zUQqD5K5?fpsJb=X^4+jR`;?@tjs_oK$NGaCRpd*0%m9|M+@0%>52e4ER zvbkV~51v=fM`gM}$1}t-$Y0}aUve3UX>IZst1QswL1Pph4`73fsl-->1en!hA^p+% z@e_rR7*`9pjZ6#=vq|yXlYweY*K)p(NmO$FNE=P2j-adQt|@;@5H`o@ER`^8 zr>20>Y&q!Iic7x1R8ViCT$9rEVgC{KE-Z_G*4nmOrpp&Q!+o;^^unyQg9Nz>%iPY5 zis-z?>Vl?@|ES6!3=$p@nyG-;7IZV2IkE>N;mrcuDOOjNTC<&*bOaa{5BnqMTUS(L@Vlcl=&RG8IoZRwA9Ei+4nXTqRL-P}ZPEPp>8(&p m0Rle*KL7#%4giU9a8$6;60$Y~006-blUD^u26zMj0000sks{{+ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-compact.zip index 64717b63c5fc0b6b342f24ea61aa9fb98d8ed87f..3058dbca6c82ffa7ea0eadd6a6de8ec52514c24b 100644 GIT binary patch delta 1461 zcmV;m1xotT3bG6sP)h>@KL7#%4gkQpsa9SDbI6DV003?lkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfUu#);r>zfYg@N_eU zJL_L>MSlnEJM0yIYA7p%vqie3?oiimw)b9jFcm&-IE%KLd6TdZ2nI_lUg*ju{8phS zKo#nfIXqIr)evQOxdUy{vLv;b6t_C1;{g+WtK{Ujw_kcx_ z@eTP5F<-A6Q^ga(%Fo>W4_s3f%UI`WH)&mwolw%UCGc4X@ll^3K<|`+IL>6$)mn>e zxEpr%pEEyOExAvYtBZ!XMRNK`2_)ynek@svp0uq3YUu=ec~^u79MY$xkGG=D+pyYv z6dZL1&=E9$f>i2Y^P|kCMs89OKo=TYZ-0jjaERO6~{tii4`6Lc+)$i#D_Lw%z zS%YafX(3_ll|05fwb_kXY8{ad2K0#I-KHvb?N z|7g0K)V)j!V(V^7e&{U|dHm#-6t~-7L5-I9eAA(SzjdGR#y}E@3hC>L$H`Ei?4vI= zV3s3-=kCAge>1Pm4ee{~xM4?+ooUk}V}$(&-|U0uZCpAE0Ws>JgkZGkfvQYgI4-pJ zuWI1&hhH1pe;0+}!nr#CvenN#12p7&3u)8$B8UQ8B=GuT0m4-tr!uYV?CcJTxV&C6 z_T)N$Hs)eY*t0q2b#vJRr}1kYMmV%#dy?!gu1Zh5OiR^6{!Vm+kFgWwN2y|3i()S5 z-b|_c)OKYJNR)t&BTx^%9%v`zdwVKq5Afv>f8HmpO=gXi;KwYa#6)~1JbwKZ(Wd7X ztf?+Vu1wGO9NhGFxnMo#eY@;_m%|WT1dZW;WOzh$^CTHE-A@Y-a&aSKqVAd5;Fy1C zTg2G6(2)kulOQzf*I_u(yicL&&*3HV1lQEe{X3>KrjfbM;~w?m#B*Az{6XE-V^g_) zN7aRbl~p`oLPnLu!)|7IWwh#cIRPN&gzny+kf)bYm&eNJR~L)Se#3?ejn)l_<@%|A zrlwY&_t%@%5h0yN!S>bd>9FcSqOkYFkeH)Rg#k~uy#?t~HLO@LOg@UCM;mR~r*Tff zpaXcEfk(d?!dq&+MI&0CJ@_p7IcN#ifCD5!H;G4OhsjL43o6+|OS=1(+4M znx@699&$v50iM(-SRQV;Lr#1q{fy~84fAf>1;$#Z!yvTUb8HJ5&)!@N0lkoa2u%m1 z*S`X(ZfgdWi0w{_4;okCsBhDusW(uJCw%IX$$d6NK~W3$CQ}!lK@41nZ{c#-pG7;s zNH%h;;aJ(Fe_T z3yC2XARdGn`E5%B5ro|4#NWq%AH=^8SPus-^kttx1FlDCxuHxkRPr+V1;T^JG|B}K zHh0073#tW9tYf~>XGw)%{D8)=kU*n}pjX8@BA>@8`*U|EqNT@)9<&w#d zwP^YW#qHev@QUz%0`iA@nmF{|Z~uIcD0omy0Rle*KL7#%4gkQpsa9SI1aruU1pokU P7Lx=8NCwIU000009Qn*8 delta 1235 zcmV;^1T6cq4AKf1P)h>@KL7#%4giXAa8yZ3m2;>B003zakr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6Aw3vBona*-kcUUB9uZR$0jest4!)Tc(Aket#g@=Oc9?s z4*a>doE^#ckCm3CTW67wU?=Exo#^ZSH9!?Y$Y`ZqsQ3}qHV&d9VvEoiG-?3L{MhUm z*CkyjYEnugrnTUgwM*1vq)>YSjFxbF>l&}DUNw)TM7fB6-e1ag$STA?Gq@;uu1idH z&h@W7)jowwEg%f7xi_9|kQ7JH57d#OZjHG;2P9feVx<$4+WmV1yxflYi>L{K-pn$SJ0b=1Kr>Hq5d6qQN3ra_oYBi*5m5{=W zJXPg?R&*DC+;{V?q-98&&ZZW9YUsFG56w=WB4=G4LxzILhQ8TX#(PAk1{;OMxS^

jY!xjv?lTc;lF{1R2q@%;?jge@ca2Rnbk$ECj$Jl+EPK zqq7kRZY)9Q@iO2;OMnO%#~FKE525)(3RN3}7(Q8l-?oT<1@eqT`R6?>{y_ODja|Dj z3*NHEa1n$%oi^B2%*j~$Bf-7Je^T@wOk2+dcBH0_)xn+IWfs@XK-VbShdNbIdzwjR z7u||IeDEb<5VO1eY3m`j*uI{s&>8J?)$~i8I3S24gFE!TywWt&&iW-{mlN76zQ!4g zuYUM{OOETU0Ue&Ap#ND(IK>>)(3)sN+IVx4#>8(uq=jp&!gfPAj@0`!Xl`hs9zkTB z3|ph=Rc9U%!tR#$V4T~~JEs*MhcWEN+RXH)es!stUN9Yju(B+`DV>uwP~ zn{BTyz^?A(u}csstG@2Z`|k^8U|1=hovpAd;bP8A(X%s@+x(F5E1LEW{mb;RNUdTBay!BaKDt~^d-zUTFCLnLLWV2h4vRns2JxK$5Vss4*=C291m6rt84 zh9rGifaPenS3*g8c}yh@cZ}rxZ-8ZgqQxokP#b?gIb9WMvnE**DYvbly?Ww+p6)IV za#uq{M&dm%xMgxYoKxuF{Gh2Ei*!~U|6TH2vV11y5iZ+b4x?beeyDov3LZT; z9ylbR1wc|LW!^0hl}@omFmDoaKv}Ect1sMq_b7`?bZ;=8bKnKyOGk`mzPpeo<2L%6 xAh(lc|I#vMeo#vR0zU&k00ICG0E%&NR7pyebEpIW0BI1DI47)006?STZ#Yx diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.0-legacy.zip index 06cad84a84a1bb67f463a2d667a6a1531f9e93b1..ffdaefeb3abbcd59698e087aa07cb4ce66778f49 100644 GIT binary patch delta 1332 zcmV-41@KL7#%4gkQpsa6&E)?xt#007bx001PDt^_BMLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#R zn-1ylbTfrJ>tAn0e+TS4>=l1%C@X`rMY^Qa3n zTJY$s(2Ooy7;y{8lSw@?U+_)2Sp?Fxr6r8dBH9+L21fehcs|W0_Qj-Xcx@GHD8%YC z_g=jh0s4d;F+M%h6j*;hu%DM{QkG9(3<%~>g08yn0!SsnuJH8OV)DwG(IJS-)r+Oc zpNtEq<9@JigPpdSK7wckdp;c9M`Yu6L=*e5F6A708%Y&{mQ*lwwtdB^KAM9iULeU@hal6g;`VlGVG|#7>r+x&O6keSO7ektoj87HmQ3scubb9B!bQ3OCJmT!; z?c%UyqQ#R0Z8K5pZWO|pAnqVl@b<3S^4atRjht7TsOP@flYp-+*rmFlwiDE**}v18 zU}@I~F%x4 zL?|2SVm||w8aIvLE0zv$H}`W8TWL5#rSK>3rCqc;#9MzN#=N*N5JUg){n=_H%Fy4< z8BQZ3UP+M~TI+nxVuP{OZoqWaRn2_`51p`HZ0 z@`R^6jZJ^_jDF!2tos@Q4rFH}IeEhjU&~dQlG9a!_b*O-eV-lrIRlT@FIg7aCOETL zp|Nx;HS|YS07x?u+FV}a{oJ8&#KXxuSd^TLm4m9NpLp}*^ot-R?_cJlg%-WaLL4Nl zJ_4u8kUfVF^0`2^hOeucq^0?*0rXFOK*nYhi5Rf-L$FU-Zj`x%DD zSE#1sb9W_8$35vfm9*ZH2*mgMiOZxYX~*)ntOQiiM=k>2R18PTuZo(043$tpG zuBm@qZ?9!Ssh^wC@#>3c60yF-qk3f6mc269-}JXp!&AV4{{t??Qe1ha9S0d>J*j`c zm1U)`MULE$e(m-zX2T{vJ!1B2OG2abhb`kli^BpvP7X~ylbr-e215k^0002mgob4R delta 1138 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 QZWfaS1xN delta 1235 zcmV;^1T6cr4AKf1P)h>@KL7#%4giXAa8ynpxjm=^003zakr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj65FecQ?JUw7Rzk*XVC{qaXcq+cU&i(7ych)6!Xk=m zSTWaXM^-dU{+UgG1sTJH06bK4G`;=kewIO-72%64fd_a_crup2pjN;6)ojZS`p|C> zl;JFtp0%r8<7?m6Kmu!M(Dz-jOPx&qXgz@is}YDoI_wyD=!t|lTTGt#x&JJ>hSNTc zX<~*~9^Ct^bukQBngBVlLyAY18s?>klfVA4sj}g%V#6MP$#fZ!rV%aA^HE^=FlQ|4 zC*uw8B0b0R$b$776YWCWkO#q$Z{8uhL=OMy0F_1^BWTkG9Y|=$$VU^={|(DbfAx?A z<^474ERpg&(srFmw18?c`xRq_nHLS(;^;c4*V(_|?q*{w=?V*~v#W~$l={+ggQZ-s z{rU;4eWIp+pt*|Q`3eO8DJSxgUCx(tO+(>QmSBN0#>@y5Xjg9TRH-%1#eq8u2ds|$PB0MK7~AX z+J`NFYY$1p+kA+O=bwZVU>Ko)Ni28s0CK*}w4-SAC0(vAURrK(svZW` z!l*n-Wk>z>t8Tb~3dnC|yG(*>`ijumf~;o)Vi6a!xc8E`+;D)p@oOME8^j(w=R;gr!{X zap(TpENk7K#$HYyM;U_9-jk{e19rPKH&nDw6X-@SyYBmH|0tPP zvxOqY!V`hIys6Gc?rhs%vp~3)2&OvoTLKZK}^yf!7G#_WcWV23)NtRXQs{ xdT^fb|Ne75^-xOz0zU&k00ICG0E%&NR8AndJ*Wf#0BI1DI47)005|ETeAQF diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.1-legacy.zip index c0caa753bfa337d00b3a39d3e3527da8e5040a7e..2979631c434b58a19871fd22d4ed33f9bfaa3976 100644 GIT binary patch delta 1335 zcmV-71<3mB39btpP)h>@KL7#%4gkWrsa8+Ntv>_>007bx001PDuLLKNLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#{DkbKKU9)F)>?l`=7KIrT0dqCz7e#v5c{^9ZjUj8NK-t7zBV4+LALy0 z@Zf!C&dzg|d;5cE(fEDE=&*0LWoidlUtDnYlPqA0T0L0DGUO;~`-24`_xGTdpsaOD1MNjKNf(i7)CVcd{=H2|t#E$?!g>n|8MqPh zyqnc|7^W%S8Oyr9nAbE)V_+Mvh3l$2En8FmnMXmn6q@UoYM}2c(rg)(2-p*^13c=k zAd`|VO^Karv*%|ZQeN=V%<+I2XdszDe%rHX+3S!-<9#Eos|vS#TrM#VEOvq~TgzV} z>?0>9;Sk?k{4hY&j(2}eDSfBv6xw(;AemTAw3=#Xvf~XJy)CS|1L_H1323c&1b1D& zBdIqbs@%wWnT>ri#IAx^f&7l#OUmt>&y%?ICn{um1#UL`QK}(xeFqh-(v-tewjyU2 zd8WPZ<=pVqQmM$n%MF;L+wVN7JpM=9?*bIc5d8{(6Xo2{qkDgdQR(YnVaRMrfPBT5 z0gSpv*7eM4@%qsD9)$H2u~BSld&jx#J1dJTXa6A2ZV_7b|;N8A#-JZNHvsK`S>dgKTL&&$Q&`VHw`Y4-8urFMmF`j zOR_~0$9{h%Ff@PuEloKL0LnCN3~58%d*C``H$02h1{M$cC@v-{S()6E zYuusufVQBQu2}$2gg2C??8Zv85-~Kb(Jam}h4RpDYEVzto?2>`H)z z`C7Vxks#u@&oxQav@9jv8A~ppUo_n@&;o~sno<+s%`$H5NeU|}Mxq0er`pN_f|Fig z{$sG9k`E@GrSTgVqf=CW8gLv?AXB_wVAhY>nzZ6)htA$1#%kN;WRyZ18~l1G2EozY z568VNno)m_ygQ+@MPQUI29LwQ3QtExB`YyHKPpk0w3vn?|81 zB}#x$)aZIoxfYOJQRRh~4HikO0#nE|lU2nzv;#YSMsLtjcS$1#CiXst+ z%%N62O0c0c(bt3nm;zNWn3eW$WyA$PSpVcyM!0`F4=`-N&H*6JlO}ICXT&xuHZY_o zSxw}K8L6yiye4(SPWRCM@d;=f+jEJuPx-O}(Om`O%#faF5`+RQi^~|0`(DzKY{>SD zc9KdqL~LqKNWcf=zG*iOHBDpNzr4+MH@Aek(u3d?`4>_NhI?0R)ZOb*QPKqSD)oxT zVVQqtqfw_=u8Pd005vPcas1B delta 1139 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

6CvqBt8EQEorK(M+Jsy zL$jCqneeC+mdNE0D=<(r>Euh4H9O4^EbN9dKhMGndS?!Q(>zoDuERuW-GY%&LOt4y z)sn4DO~#BGD|t9t1f#ja(LPKFDV{jY+6vWYay_g<|9m`^eF5wUC-xs>m5;ecTn`;e z^$Yxdq%UFdN$)GOyi6p`R6gY|izyFFFsTB8D)=9y;NL7f_O}C-moQitOjmiB3lCU4 z_NbO6><99HWK4#$V=9wao%|TWU|@e&K+tKIEaF^+xWgVb2n$xJHNNCa6o%!QZRRBj zCOTV+ipN*^1)@iFr@Sep)4}L&iA@@bW$T`mmYVIJwLus=soWOjc*(kJFQR>wb5brn zD$c0oq6&Q{60%UEIi=3F0eaMXIcfb&`1=5!q+R`gPluhjdk>S9!l_oNl4XbdsD9)P zZH9NzL`HS4X*9_>@(7YqwyNL$Mul%Qj?52T`N9}~@<{VoHL7I!WRoqNr!s7e06>el zrB!daweHV!W6U~H|C}iHNZH^=Qr1W`mO9E(rwJDoF7er{iqbgDxj%y zAKQ-EMtQ7j;;Haqo)EDzg1u)PhZoQ>?w{~~cmpUBuKLP}$9K60*u!sGAN*#0id5ou z!~5lzGcFHE{s2X%+|Qgm)kDI2H_%eMWKC;WS2bkuWw~vW@ws83Je7EGAs=$1(itQ{r24@ZxTz7cWE{l(B=D;JqD#a*d$o= z7QB!#7m&0W$X-Trip(l#jdVW43ibMFo##d1*pN6ydctgdRaxPsK2i|)gBg&2M#3=d z&YiZ>O0oCQ=0svE~iK)7sT>s^olDvgcy8KXn#-tN0xREa3=jnn^^xaj9lO928u13v%) h01g1jxv5r(7OLC+1ONc`6952{ngm7$Km`B*006?TdfWg2 delta 1126 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-compact.zip index 4e58e91d0bbabb815bc13db3f9fe9a64379295fe..c5e01d83f65afed138f1806a6f5d319f0ce409a9 100644 GIT binary patch delta 1468 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.12-legacy.zip index bc5b6657f0ca6c222f4146472b672812b5414238..ff0c742c1e9d7cacc43c0246da46e5f51244e101 100644 GIT binary patch delta 1323 zcmV+`1=RZI38)JgP)h>@KL7#%4gkuzsaBjFg2Vm<008zAkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfWs7x5P$eSSR=GZNB zf2bahfETTD4ky%qiw*IJr#?OX<|}Za5{i@YD~Th%Fpu{E>8LLx+uL zR;u0sFP10agey4=f5A^Kzw8HE!X0@;7iN}p(+&7I_Tsq zYBw*RY-}l79PjGmjz!{2gIkLi9FazGp3IoNnj09G z1oDL_$dYn{2yb{lo2--hFmTA|MsW0qsw&eDg&tI4x0%0fBF0)x;LG$DS(@NmZj?}8 z(Q5hm!A-`0Q$sut!$!kG;sMl*U8 z4mvF%>pNRyl@KMaXzF@b_HB#ei#R+(pRb{LgI;GY&Y4LqvMZcsfD1X7M&F?{^8lm0 zh!B|61h0nctVC9PNw$W$DvIk|8R_$vs%tEN0VUQUUWo3+eDerbv)0v0Q2QJL=5~6Y z2l&byE5e|MZ%TuM5wgkn$in|3+j5I8ouM!DluR0SA%V-79BwW8rZCat^ z5PMUs^0*o!mH45M1-3~F`*(AYg4oYB8X0F+^{@f+iDZW|nVa6colk$W*mGMq(I2gU z4zSLqKiB!M86qOpH_GuM&WA#Lx0ZlqyQ#M>++9@;lSCUigDY3bQsK5#HhHlC3zYnd zNYtc5Bfp#NyN(DIepBN z$*Dkex}`WBz?Jjm5kuoWlQr>+iSg2ZH>Z$bpHmsVR)*+$c5hnxv{Z;LZf@7Wpf?B5 zN7f#jK<2#b$^M+xt-RpIsz}Psk!(8uvl5kge^d{3B8A|jr~C4B%ZBvcP~Uksj=|CI7tZnQ4n+_Mj4&Ktt>Eqln9Z( z$4yf+x=G3iGV|pTkp%j=P!+Mgy%FF@W`u_Wqc$r6Y_Q??tA~RjrgcgO928u13v%) h01g1kxv5s19fHID1ONc`6952{n*>G%Km`B*008aqfWiO( delta 1127 zcmV-t1ep7%3+D+KP)h>@KL7#%4giaBa8zB5sgXSd008d}kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6NZ*MoKP!$``R;nLkQRoLTNlH{32mum{C0 zQyWO~CK9e6pylMR=!&@iPerQ9`1d<*$w1bC6XQo!V6Gs8;*fLh=Qn;FSqvtvk^YGY zPDibKC2_yTC}JY@=_l2R(eamlg1{0p63gXGaiw4*&EMdExDaNAP@osAi| zxE>Lr64uSBFoy|O%#N6m&q?8$<>Lhp>R5SYPCbK#0s!ekgs5(~dTZS#l~nqEIy8$h zWhE)*<=v5j9MFV}@p0g>EM8|jAUlGm(>|f$tF4yr>9H3vng5BV!cc)G{ zaPTr@GMv?arP;mo>MT9e9p%8cKN%-qq=KyRa6<`uulIuex{Z;4vK=t~vi-p~764?@`47!4pY6FqtDIIQ z59lhgev%-fa|k3jN?X*_W|l&9p89g=Vl@ZKBh)jn4tfas_-HBmb}RA;F&01S&lT)} z?3(R@d+@uiz+&z``pTNWUQx05Ynr^4?(3pnJ{8Y+CCm1?(Za1gE8uZN4NUdk7Oy&g zdk>u&l?V2#T^mOnRINif(aPT#)c=O31*7xe`B*OjPuDai9^9^cRC2fP+NrgAsxTegheWC diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.2-compact.zip index ff8267acb0e6997d0ea8be70d8adcb49e758a7a2..875585deafc012ab5e00e872d0ae8f6b5efd5a84 100644 GIT binary patch delta 1477 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 delta 1139 zcmV-(1dRK%3-bvWP)h>@KL7#%4giXAa8ws+_!mh8000>ekr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6uFbpC4!_7ZeYAj#AESF&W8~7Qa++T|Mpe|6V_r z8z|=%VYxXQq7jaNU|oB6f#J1sV*r1Bx?2|T^Epu+QbZ;pe8$UmRl6YRKSO)du!8JbpwPh*$hs-m@$H>) z69tHFsNUmO32MrajI zO9!;uANowvl|78d6$haX?{94d3m;ZbIapREp0hb~pnG|b{0Fy+mN|7#XCTjB3k=(a2JUslnJdh&-+tZ@k5kK)}pfQy;zHJu>1t^6ktt1*mGS% zWM5K1yA0ky$lgbgmr4*|5Jh)r429DcPN)!&*8qfIG>9YbWpEBS+5GjfFo=MC0;?qT z`!{WWJm&_RP+T0)Q_<009R3Cr`m3_IN39PNFWap9uY%ifH~G@|=+MpWRNY8dt~!*Q zR*hwYxM&8?enhb|0Mh4qEI_#o)rgvZ=P&tV^_ebeOmu0jE#Tx5RE` zPdVgitwNY27o7%{HE?-K-pf2DcODiu#kiHmBX=C>rViEu;83I&VBv1o+S{VdnPQx$ z&>M0b)w`1Xnc41l8K#15jm@KL7#%4gkZssaER9@ob+3007Dskr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfgPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMKuBSrm5frMb=RXWz_H043-7rZ1z}CXbl^;hFpaaNk zCH+scNVo4c6ykxzw2oCDA3zEKU92_i9HN&y ztwAzjWwveW=E+!89_leZv5sjQwe?A0reI&^72tR9Db4DC!1OyhVp)7FQJx9+jyeS- zKeY#*O_w0Bq@JRm?@8O!4RD~&$lP3h3`a5uV79@ToYQFyY#D2jzzt%zG0WUa}esspuFh2fKTFd46rXz zCJ}%}OZYQ?tQ49>59kU1tqKj%{x^mcLku+Q2D|NE=I_mE>+@zS?nlThczHGSpe5fa>=u{fn0UnS+RT~xU+iSgyr_M?CBFfs@y^imek~qK#y*#R;j)` z6Vot%9q#~@ws>Lw&x~DSu<1sFNe725C37->_V-IjSjVn2;#YsS1OsEZM1+bxuoULy ziY$UXWH(FH_rE1KcNu?dEHpJBmmqQ7&7L>ScTc8WGoqd>Z{-4(6m&+aTqGW7BTOaB zv!kJM+{mPdA_a*GF8U_Slz2_MG)n%%5H*QBAQebyVWcelHd6HS6#`zg7tM|cB0afBo#*+ z59?ZJCawZIA!Kgn3q&iTt}8gCICTVhOcbloh5S6$MZD=9--;=u-xt)nOSXoSGNP1& zDN%!U&jn(WtrYC1kW{QS8wp@67QNW}1!Wu$<&-#*MemKz20P;%?|jjW$z=O~0J_d1 z<|Y$A-EGDxbjqB@6Z?BKg;xCz1N3>~SK%P|PdHhp$qB<|tDk6IHO7GT))Pj!-Wlm3 z1+Fq|6=5*2JMb;f5xlpD4S{YrwEgM7T9>lzeSzGj6S9VF9tZ7uL@+9Y3CpqJ0_|@$ z?e4t*ovjf+f1WNl&srmK^^rTRazAu~`>9y*7$7hEGbIWFtB3(5 z{+-`>JrU<9lmtm8t-6w5l!}W{3tqxpb#zW{Um~GU({OGL&LzE4QiXADn7vt}iKhg9 z5;>xm6qoI`Qty*bkYu}wTy#B&M`Kt%E8W{MQKF^V`f(C@KL7#%4giXAa8#{He0RJA0065H001PD3{1)1)aPUjIE*u~%Fy(#seI|c?F$WF(;@T>oA805S6c2iiQqF8K8OfCvzZq(E zhmmL~Z@A+ZBk#}}j&jF{_f~&0EvdQ1tX}AAYQiS5&XacKZh<~U&WrIc%E2JVC6gl& z_HaoYy?nkZe>i3RgbW#2Ma)~|w`e6KyDFK-P`n&x8`AtKD`?rFUTad)`<;nCSF~ON z18@A-y>?8|V@nbrFs+3A$>*PGtD7NUF6sBd!ge{(~QM8Gy!Ynf9Ct#UnmUsMgK4PSNYn75cD<$>)!X@~H4?)Qm9&)lSo*WR( ze-(8DN0z%lXx~)x4 zHw<3U;(4ffKx0XGk1j=Q+54i%j;P#NC;JfG5^OWQV;yu$+MLAx_Ed@g=Sa6^^MbIfC`pNIz`Ef2~&!-pzx> zY(X$&+b&bkBtg3u?9rfnCyoR2tYt2evMzRaYtG5XaZ?Sa@w`UZ0a#TRT&ZHS+iqv+ zR}zBsozl@ZKAC%s(*Dzfled>#|KdxikGnVY5qp0T0@))t{G8U5e0ilYIeKF@F)S;p z!Zha+mMQ{JEZ!G|!#bj~9KBmrWp;GzCz<#_wN;Rs)i&j=_FbC134a%0QGK}QF){w`q>sEjsgPojpuQf#)rk{5MPm0eE?sX z@AEsg1r|CYc1xN<|1ONa402l0EKmY&$ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.3-legacy.zip index 63c058f5f55888ea756a91b3cfddc88f9f0a3657..fde27adef0e14aea47a60650acac386b68c56cf3 100644 GIT binary patch delta 1346 zcmV-I1-<%!3cw2(P)h>@KL7#%4gkZssaDeW=%5w_001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+BfgPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMKxbqFGO6G`4Sfuos4*EavjwNVR(9{i}?;_wGoX6*p zp|yOQ3TuoOIZ!r&a$8r4+|v#hCb{EqtKw-4`&J`r_<(|K5CYPMi|?D>I{mNA1jMXR zIyzF^Qo?@33_;QFq>Du3E5z6w#4rwl7B_Ph4`-EnwSahk-FVKb$Xy@DJC-Lt$WT~$ zZFcnIN0FXRkwS#%Bn`vICK6~GB8p=HksV=2->;&AJ%~otle7B|WhjC1e<9Q5$j=oV zzP!Zgbf75{x=i0Fh1&(~vVCzj+SD%JbN8hEa+VI&OsWy=p)407J@`M2+ct~$B zu3i|Qq)=FY>X4YV)>9r1=IU}*xnMU!qcGEV5fGgFD65b8bnLWQ5y^k>u6}@sQlSLHFZU3 z8G?=y>g2^6540qCczgW}C3pI>Jq;_(gluXXDhB6&_PL|=vW|~-HJ2Zxr3KU*i5T9@ zb8vFV^O3yqM_#j$LK63~OP^=}k zEA8A9?mN>GL0w7%tHPPiU^7H+jlQF$IZ1|1?fa#j2OkMlnlv*sE1eAwF^Q=iL^3J= z4Ozh4&-TQB$-Afv5D}9{QD<?n-+am(s`h=|RUP!GX%aVr@-!w}HDUN)8Kv=eIfi;TUfe=nanmu^z~n{&}M76gyRn z7p|ZX9XONamOyKQ>hOr2&KE}ZoeQUN{NVez2N`*{Rhcd8b!Xgl(l^MhGW>~4{V3Ex zD%_=@d~gasubcn)G+0@KL7#%4giXAa8$y$Jh4^;001Wskr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6jxpC4!_7ZeYAj#AESF&W8~7Qa++T|Mpe|6V_r z8z|=%VYxXQq7jaNU|oB6f#J1sV*r1Bx?2|T^Epu+QbZ;pe8$UmRl6YRKSO)du!8JbpwPh*$hs-m@$H>) z69tHFs@> z={iLkf|NLalIcvYs&Q$E|Jo=3+@G2wQ{n0Li6c(rrXdb`gqhtL{d4N(f00LXNjO-v z?6<+#ZdAHdbZ^$eeAbgT+Wr=0*<)qm0!Hj|shL;X^X8~v`2uQUv|}7>a(fiUrsl=j zMqi-RKKXhs{$#$DX0*FK@RKKsZX)B+Cz=B*!Vyn@nFr`|;#K6cz)OJuOJ)FZ1>?Iz z6lQBO$AD$!IH~+%o0+kr+>H7`vD|`oYOR4q^5IpJh;P6pS@OJ^>+4F#Jn^QlrETLpJ$DeNqoWn(dkUlh$W+V51L(NJBZH&C}J zu4B@F!Hm#44!EQ>#3l(jg8o9P+Vv@2iK3d9VgXz~0xa;H7$z&*o7nZBk9Ydd@A_J^ zj%#sIcKnZw*t)*2uN*X6EyJ?f%#4#zT!#FOmRxr>v=PK$EW_TG3cD%S*1WEYOPF;O zeWUCQu7WE7vhHw}P9FO(&0%G!z>_K^UBeK6j$zgHc4Fx-&m-pwo2#3&8WX$N5iOz7 z$n)p;C=6BnjeHtG4rNl*zq;2^+I~;$o&YG{XOvt-f-XJ+)Q$BNpr!QN@l0WsnPBWk zdyaiEYSNMzvj|QkFBq|+55h=|ewhje*^++NQ$7}}t2wHr_&sE;Fd~t$g^h_A;oO{m zl0yB4;CIu*n#S}gnO`Do)O1M%3rH3V02Cr=J-vygW=+b-8Rw#2vQr|DrA#V#L6uK! z&Pr2VEG8gRg zK`pNr1h5Loh$=hOyD?Em@mRRV!9Qs6lmG7%po>sT0Rle*KL7#%4giXAa8$y$Jh4^; S001WslX3+}2ABi@0001%G%=$9 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-compact.zip index 144830f762e721fb5bf5c27cabe573fe2d7c6df3..e09dc04f2313d94b343105d026d614d828d9068e 100644 GIT binary patch delta 1486 zcmV;<1u^>O3d;-_P)h>@KL7#%4gkZssa6pbg6g3K007Dskr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfk8sPb=z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0m96M#X$)qA@s-!9z)PS#`8g0H=SQ}unpWVIxAxbiu;fAjZy4mhT-1bZaU>+#=ocRIy)+b$e_QS^-Aew#I;wvHf( zSnXh$NTv^TqLjvVYH*_1`9({yliZTDMQo5Qj`&i42h+?>%9t%}U}kY1Ny-SZXw`%J z0Oa!N)xcJt`Kpo5ltXbTS?h!Oz7=!KUXC4bX6fgulWY+~tNRyh8?q{e5XP#A$jek$ z!SWMA4q)TZ&+|G*DQEJ}M5QHXw!>$+pP{&3c)aJ`#!o3YR}@OzjOqkpaa<$^4YoNM zl*nLzpMM@AzjVL+q8A5t1NyH1(y~XEd?>Ma8Y}^F#_gS)nC5v1Ir&eHlrxECqVn3w z)!iAt_dv1Jc8V~YS|Nt(dI*lF@o<6}v&5I!D9M=ojXE;TnTU)XQF={zzB&#Y!Yh6U z&i#v@L07mrR1Klhz&GvRRKndQwgB&zP01*KpXs|ZY#ckH)rmSQWE}4%Z9G{=gBfTe zNH3*S&1JPq?{GaC2AM$kxEe`ia`VhhK0rLbs#HcEJb%>?UdUS_YkBDH3;O`f82(IF zKm{-%Qd8*%k#^=>?*eV$U@l}>V#9@x#bO@GIi1GA#u!{u*+rh+wbM27#F9V5ag+If zz$cIJDlf<*{dzkNWk}5?6QX&+-<{o6zQek`o-=T?cHYm)*uYVPeKGSu*@}XY|=gMlj(@ z53V)ZrLi_w-l{O@fBLpcau+r-WA+>qgjf#4-TrJEe&|)PRt^xoO8C^wg(4iDOpEGj z>Kdvb8=3|mO>cXZm#BDvYt<4li@d)*z;th)%*2~cv!A?6P$Zu7$^C&{<`ETt?lCk3 zcwRYQOekd>inXb6Ocr}H%{zTSjWzyOX}mNMRg}Jvr}G|F+^I=>_%7P;B5};Yl~-nm zUu(SL-i_xDKF)OfE1M#$z(**96tdx9t`u!SBIX_uwHGCof@q6kY#yvkCZXH?Qi+_I zSpE=hcYj6Ggf(W?AGNf?Y5yL7L{_dT_B2(;yRBbhED{Dd(gCu;>LN+D!=f&J{<#)C zj9?Pr(01FG&lA?D%jxY9n<6~nD4;s7lsNXYa9HvFELCe`edm0=Ljz6O-D^QoR zn#O_ZK`IQG`sm^zIh7G{_IHF+5vIvU23}ti!bm)dJN=)Z4Lgo+*Ut_jt#ohy3Ea;B oP)h*@KL7#%4giXAa8$eRsEWJ<0065H001PD4hAQYLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?F)Y+t%eDll62mOBW<`LvzfF~?Ww!1lVelR| zXG?jow@(GgE1%*zcU%EZ7uA0rX?(gh{Q?ra$-L~_GTcg2-pDBDDP&6@sxy`Br8Ql; zv!I$H2tR}8y-v1a*(eh*SI!LhJ>+_LxXs6}!AACLU_c;Yr?M3S)wa*m-;-%?N7Z~Q zcp;MUXTnoWB~FDSP|4%+Ir-QNBR#k!bi*;*f$?D`=y!xp#sn-ks(XLs5*IHfTBF?R z`9mDX6K1Mh9Tbv&GLv4D&gyZQKDqCUE;I-hawryxF_9b;8z^zn7O}t17XKmU!K~;_ zz5|4jY^;FE>FR`Kf;j&$BLb?L1&E%(uABx87_g5F*Rva=!F52?}52;G&U|BYZU2 zB`QzNN4Ai=$jC&1a^J70AV5b<@npCcaqYEr{0)B#*nJ1Gz*D+#l$N51bsXi@!3YCy zt2g(}`&e@+u2rA>^fkvHYrQIZO=o@3Ruz3dCud{*Y5cF^pr?NVJ(k|p(}GOR&C5!4 z5Y(MI^M_dCVJk=S{%Hq98#b%>%Q^A*th0I(IXydbOJ1Vzqpg$s>i~AzAxC*lO|r1% z$H(_h<(TIQHasB5DegleEec9c*x;p5pUAIg8=3WRUsQfi7vRC=6l7hT1p!efal=j? zEsG^+>~pQ=Usr$hBAP<0J@d%==9ywk^1Dew3X3uImWp{A?2NU1GJ6Tir6#!$W;Uy( zOpq1z93-besV2k2&!@6|?Nks+j){k<8}A*>khfJ(dB7awZd{oK-{~#($QxW%seZFS z61?Ja$A0n!5H|d11xX#U`?;kMul$YIX;jM{Jtz>wb}fI%V8hO@7q?e4Y%%3}pt8&F z$R24NzwRNNeW>G)DV~ruJ#K)6;!x&3`X7<7guhJUrV6oKgCwJ^UcY}?04B;LHk581 z58RMcO(>Y+{#s7NI58?KZjRl4#&}wdXL)~%q7WbQJyOrjW8olCmX&02p{pa{b^_#TbYUhu39|^7{O+q3@0DqpNwcp| zVm8@x9ddAUW97Z;eXW>JS$Z+SH^zwv(@!2q)p;R@nU}gW}qa9GW8N=Q&-%iT( z7n`}>;7+`+6a~TfJr;b++n|DwU61bDZ;f&h%c_6cOLLsU#7u=nr8aUd6S1*VbTSrmfR6k!%3D%m4rY diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.4-legacy.zip index a31bb7e9ab821c688504c535f1c6e1112b673890..c1763bd599607558d64acf4add3be5f3e15102cc 100644 GIT binary patch delta 1347 zcmV-J1-$xz3c(8)P)h>@KL7#%4gkZssa9{1l^_=d001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfk8sPb=z+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAS&mMJT76VW68jW6AFk8A|zwP za!w~7qy}pOiUuIl$SId@YqKc*CZk*#2{(~bgFS=z5b1jFjK)R&NFnK(2n+cv=TCi{zLjLm+QM-%?Z?T#uuw0c=0`7~sYWPeIY7TV> zafq;=5Nqpyi~x|JiX?wW0u4HE?vhTb1VwAhS$7}dF<$|cns*-0gOczg~YRX~vf1J&}orU|tnHr5=!q$Eb zn8TkM_*zP4(@$hWtkdiXVP!HDUQx1wZ8;L{9zbr?5YhMYdBQhhTA|FtY1PmmtWEHyvbB|mw zlk-4%UQfu*yHNags@An{J6e3a;m&2khqG+DWg<1XDPF7kpl~jXw+SL`?olBxc7`L* z3UBmLG+$ar1i0{A9eswZFs((ja)!vgGkjNnzD}?nZ@Zw2$uziP3{-+S^~uAy_d?Fm zfwu5QsETqS9(`D0t|0?u_J{-Uy1*y{g}fOTX}2#Kv2upCfMgb^r-fpK+Oh-FkilIp zS=1gc465*^ZT56&k3Z71${NwKs=&yFGt5N@$oZgw$eFtkG%Z~+j9>^PT`SG+q`D`6 zjqIj_Q33um*V(MjsOpyyac&RI=15MdLAu#<&P`@O87)$9j)p!AQnZF>ciOQ6!~6nz zZVQNeupni=4vgLxvW{h!=g){d4}}(S@g4A6$TfOlbp0-T@9hia=UnW~Q%Xv9z0H3+ zo_CWYJ|G>;pJ5rvMl^>wF(lEZe}vP2XMw9i{ohLtA#fWDkuppl0l2M6rjA~^=c^2l z`4~#{1ul~ZB+h)2$)D0G-uLMF#7SAzQ;u!|Da`&mX|1b~n|Bw29TO^-GZpWsr8+Qr zA684v2EhdIKNlEe5bt%xHQ~|J*laHCdiaXKmo)^o8!diuGRYrFJ|Yx|S_d_Mh^O)V zCE3**d;dkqOaG}l1bQ=7XCpRg{jbGcT+>GlUb{W@r-c4`^a6El`E|?%x6pjcmvHn| znGd<*VPPc{uogAx__7^*C1iYnuRH~I1Z?jA%SP)h+90zU&k00ICG0K>VdR&SA&AQuGy04@}hvIIy5Sp@(9 F007TIbtM1* delta 1152 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 S0065Hlllcn2LA*A0002**l$Jv diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.5-legacy.zip index 9f9e259d862b16ef260a475738db0cf0798bae8d..f5a82eb25ee37a7c4c6cf35e7983bc9c7a1fa778 100644 GIT binary patch delta 1346 zcmV-I1-<%!3cw2(P)h>@KL7#%4gkfusa8jKFJcx2001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfn=ji#Wz+`oO8HRnr zD|+RWeQ7>Q2`pNFNr%N5da)%0pZy>(-t~~!L&Ym{TkgQ+J0D->fuw=v(lQ_vn<;Zm zBTVUZmAS&mMJT76VW68jW6AFk8A|zwP za!w~7qy}pOiUuIl$SId@YqKc*CZk*#2{(~bgFS=z5b1jFjK)R&NFnK(2n+cv=TCi{zLjLm+QM-%?Z?T#uuw0c=0`7~sYWPeIY7TV> zafq;=5Nqpyi~x|JiX?wW0u4HE?vhTb1VwAhS$7}dF<$|cM3(iEdS-&u;nOvPs@GK)B2K|45VC(C65J5JP=pNJa5{i6~{W zaDDH);IE7$BBR6OUu>j>$AWYlEB`0}cr)^_p0b92?AHUQkzuC`(Y%_Fwo6o#+aWU7 z6q&-ix6Q3la~i?K;D#b~<}wqTu-fTyov~-3L;KNCjJp|I-IcmD#95)Hcq2mt>CW%o zLKU_&l59i26CNsXr%Sk=`ytUY4ifu?+LRcYpxvh+ZaeTCp8kmKhW!dzF3ZX)N#;S@ zQ|Qfqu6mpCAVVJxA7y=Cw>*?MgJ_<&3)zDE08GZ2T$X!)U$VZ+a_RHu>dOSgF=ZIi z14WY>cj^n3AQu|~!uN^k8aOVUMxT^@pep-B)~pF*xb1B52)i;3wk)4QKX_8|t>D6c z0sBv$13aJ(c& ze#0zUV6>5bXa$ni8nm-F1qp8C@xXj(eU)pTcumA$25}cCe_!JuRrEE|*)W?%_|hYP zy7ylu(awc0S~9%Zxz_lYEFlpQ={l+`gju;b2zUP8A36SId%_)~-8yYj|3YJoGP0oN z?Lkz7hynQar;Ps*aI=cht#~PQ1p-D=LN>QQG)9*FHN9EYn2daPI; z?}6(?Cuva(VAqHKUCl$Cm%)Pnqba+8Esvf|_6x5gVkM|Ha~~!n@kh&3E5?5Q^uK1X zYh5g;<(;#-I=(W9K^(WMMjV)xh$A~NU3V)UoHnX8Jmr=ZD~I{i;3D~d2c`s|-GZrf zg@xk_9=zKv>abFGYMrneH>KMt_`D`cxIx-a@W{c+tT^JPBSEAHx}xoh$=>gOX@KL7#%4giXAa8%MfLitt%001Wskr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6J4{`0GWA{67ZAu zNMBy`^-aV+C@ozkIpI&aW1bM4VrspY_g-8^?IqVV52K5(HVk7oNInE5mv@^JWTWnJIvh zw&Cyz){UQ$;wI--dl!scc2kl)DAwOwrR|gDkahZq>hwC$E);la1n)jDtv4$82|#j@ zb`a6DC^DUYT;ky@l;*NkVFL|WJLl>3>IbN{h1Zl-Z2cGRg*f9=Hk8e5WywEZJp@dc zMTMF3pW!w-iet{AvG3mGohXU+r7XcU|i#qS~LSza&remH2zkS8VJ** z_NBz(fG}56*9?Fo<2NlS z3A7LJX0B?s%%IB0bK)CNkVTCTyDX+?YTr2)-eGf}`D~=vZ|qHvE(Y#{A1X8(~%@=-FKc750x#e=vmwmc%oN%|n1m zKdodA`n(t<38tV8LfT!qok7w2b}nVGY2Q0OL!5FzUZxB_JUOtu%o|hQt9XkSlSz+% zN(1GM(%y3l1rw~=%v|;u!kI6Smv65bRa}x%6OmknvLo#yPUJoSuoGfYinY=Q^2_w> z7I55GmleCJWLRnS zT#?B$JnT7kMy9_ijqy=f1YuDi-1R6_fI^`!hwJ>A<$O>}0Rle*KL7#%4giXAa8%MfLitt% S001WslX3+}2ABi@0002!kR>Ys diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.6-compact.zip index 0a1a6be2c92d65b60dcfa29a0efb53bd6ac2bbc3..fbb76045d97a7a7221a72c61377fc6e36b271c67 100644 GIT binary patch delta 1483 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 delta 1255 zcmV@KL7#%4giXAa8&$PS%SO-0065Hkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6@h~Pd5H@SXYN*;f7U3#xd824 z@_V2*MvvSp!~K-^Gu)wmj;AFP4$wMOkMFb501VVBVDt!|_ze*%TnuLgxaJ{^N8vS0 zHM##w=j;e)ZAs*;tfdy|&JYRfs@IntpZnHPa`EmSX#k^thGXsfU@bbOoYu@H9vwa7 zaa5@;t1|ns+l8xhy=7YefN}Lj2`TONN4gp3-97u2K1mA_^Z;QP#64eRJN{^p0`NjT zZ1DqOd@wSDe~qxBZM;5DA(z3_x-%Zbu9X2OX=Vxm#tD-?qOcfEfYK}yrkRPmYM#X= z$7u(DlYo$a94M*r9EK)X&>Hp$TH8Qm-oA4iJ=L3HVPV@K!G@bR)a(AVc_sUFPa}2^V6NN2d(cV18J=rj7wOLvB}Yz zIbC*tFm1AtD^226Q;L}ylC9(2`fQHUr@FRy7ZNq_+O{oeKvC$s15YX1)4s&q3DEvc z93YkDYZPy@u4xu+BpT=-XN_ZViLKwPP}>|0Y$*$%PO{X!kAzkW7g22@YJg2*CC&$I zf7+syL70azaiTx*?ICRSEf=%muR)&oWOTWILS!H62d)N)Tks)lL??pJ4T}|qXQJUR zgTP<_cX(awjnp+%)GE)~`1(4$5>O@iOLbSVNKQ7bWv>m7FTe0{nXhTEXD6OU?O^|# z%S}3+c`@q3zD=f7@>yKCFqFfL`R4b3rj`k(31d7%C~a^Va2{0KR-F%TB;qP5FJ+B? z;!T_-=-5ChbX@8<@A0Z4#Z<&-M0a z)L9J3zzNOsB?Mm|SaRKXPsTIqtsD2~2=XPe)_Yo@I3WM;g;Vh+x-NW7@8F$u}mknlMH z{1n$?L9X(}3rW5vDhunr5X2L)l&Zw5Vk)cocN4S`n5mf!tKin{GQPE_N~?Rtv|*c( zNT^V%HU+lEGa4#I(1~b$v3=!t1cXQc+j4aV)&#|=X(Jy^qV8Lr=lv}YQ3Q8861^-C z-;9CJ>+ld7ef(4NkrVRgZN}Z8XXAt@|K=8I&QMDM0zU&k00ICG0E%&NRQy+2g1iI( R0ILv__ytG?{saI3005WmVC(<@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.7-legacy.zip index 54da87cbe340d8069b3e301ed0561b3fbab54f93..5a25ff028e04f496cb9b5075a7d727ca0a7b3fe1 100644 GIT binary patch delta 1344 zcmV-G1;6_L3BC&$P)h>@KL7#%4gklwsaBdeyV?{5001r&kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfv_2&vnt2(8_qA$l% z5Hj8*UhWGv*LY!nh*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}DF860)LwqQqqU!e;Q8K5GWKPL+H6_uymOO^%Fx zg>i4&xn~&mu&BuU$s0#CVWQpWfaSA2g zX}p0FZZdwuA!;~(KKGe9Z7`+~Sh|~xAFbk^%~DW;h%H`TH*WafQFybDV-G9I(p*R1 z&g_}S2GdGsw!*EEB3VA0mrF-UFI(cft13B-;ooUxj;IAy_;sE19A=IJMn2iHsaXe1?5_4NgzYx&T2{h6x7Uwc zt&}Hb>FJBS9dnZ9(5^wqsGPx(Fvf9~T9m)OWCwX$a9ao3KDMqW|vb zp;|_Nuk%^6xoM3HZHGM>=dJJiN$}~=WNN=Gvu(S{R8Ei9uo_SjgPf8ALy>J$iU$?P}gk+>$dH4Kc z=?{!5KNw;*01VmFavfWn3ztMh7)Axd>BqX7sk_0n1r4m{nv!O@B~^6}dz>CjL; zoJ&E3_t97MVDq-GckLD#2WWfs+`BKTl9G3|IDet7( z%>ckluTDC23N_)@TKlXt*mKUh`@?a63*MyJ!RL`-N|Mu@LUW^kkGQRtzY~`h_kcSP zzdt*TTP;TYkkJW8Nmwkql}MH7#WM?wG5UvaMpB?(7m}E@;{{E`oX92u%(C~ZtCdB& z?48xdrFqzHj9y|1pDOR8G@J=)&pHqPj{*VRxj#!pdw5=>7}k6g~F?UhSt?+ z?~$?|7IYuDQRG(j4mt}z^gyA~dkKW|7V5O2R3vx|Ffs(}Ozf7IX*#cOq_d9)<*@GL zl~@0KsMq>*1@XQ_wbz0n{na0q`aAsMh7UQzex}5YHDN@z56=Ii*Vw++=FP^}MO;|n zrlo%ea4le;|LNUSbWlqH0zU&3KL7#%4gklwsaBdeyV?{5001r&ld%Ly237?C00029 CiI+(L delta 1158 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 Za8w*4Fdx1I006uYk_Jcy00jU5008yPPmcfq diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.8-legacy.zip index db94cfdcfe033415fa87a4251891c684e893e9c9..53dc9b4299cbc56ca64b2856d0daa80befea23ef 100644 GIT binary patch delta 1351 zcmV-N1-SZx3dIW;P)h>@KL7#%4gklwsa8}FQ#cz1002J}kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+Bfzw=FP+XnIO1aCxPP zVTx$G@yq4W=Uq^Lo>ekCZ7~hE(yvPuQ4_#9<^JY+ac=w{mP4PV?WM7bx1F0RysE5O zAfXBj%a_Z5YBT?VfqE0?%L|#6^%C@rqn;tALWsO$Y*HdtHGrr;`Tajm%<6(f=*>ep z3AvXW9}L?-VGta*zFYlWz%sOFyd_|I5F3T9q)8Py1*l zbK!W-!WC-ziUldp7U7o(+LeCrHoNr8*QIx#JeEV?B+EZ%vad^~X%w0^~mKnX) zWi{Pmnx`*8vIN4T@TZ=cNTnw99Q1ga!u|#MMgG=9pN&eay8Cx}OK-i4y$0DxHWlGh z`>Ft{fS)Vk`@|xGD_Js2WNi^5v|%7<`_@K(rk%6VUz4zbvh_;qL?BotyYKwj=3jE!@~M?z918E+2BOw((XO z2Tq74DSMbc1JjN_8Bm5tdvZGbC0lWu-LKVk1fu72Q^X5SxJX-JLBvJW@;I;ou0>6M z&lqsCAxZ6TU_gtL5@N;Y6?7BN2_+r2NmOheF_Zw*M1<@_aDbtIPkAmeUZ!yOcU@PS z2$RHa>REfQeOa|8nobg}NUdma3~#2hmb6#- z=3A0M6r3cSAEzM+mY#(l{A3FW`<};+*c3gNzyRy*+o6psFa&3$vd=_iMrlNU7bx|B zIPWhYZ}Qv*&wkbPKKv2X-QJVRkc$WjelWZ>f`coWlq7v`u&Y1_+>WFe-OQRdlZ@CZ z+sn}p4dX6D`#GVSigl_{_T+DKX4#c+#F=tNJ1xxhag~_upAjoDPT*?DfLvKhSmKYq zIpqP!9T-6$&ngoBFa8ey`7m7@7f?$90zU&k00ICG0LQthR#XsEI2#2306!Fyv;;^7 JT?GID0056Ke`Ejv delta 1154 zcmV-|1bzF(3xWz5P)h>@KL7#%4giaBa8&Bh*5+6Q001}-kr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6;{TQrmx6Zy=dAaCSydFw_~`*q`ne}fPi^j zls_?J>CpWI?cPLxYTOOT|AB`p1i)#KKgp-JIRTVkW0Y@T@k+f%@{X%4jXpY*-(cnG z@dGt`z#-kaK;Rum{z3;&ZtR)y#~eSS?;y&qFb^tWA{x6yhvHckL{F69D(9_REoE|d zEw7u#cT@jn%3vv%G_rw~>^1`xt*IDG062rqV5IJtO))8d{|pWA%yHHBlu3zzhb$?u zQrb0-yWa4Sj5yvZVGJJKrBT_ndE21DkB1#fR9$gDC8{{e=I6O4_;DfMK2g~tp`E{L z)n7@GbEOP-r33wwH&YG1(xqBVh4;}9!N+aGh+Wsm8^!lpb`al(*@sru&Frj|$`9o~ zRgHK8=Ba&u$TV@hLvfpt-kQ4PMPR%jK{s_bc&F9N~zHqbh~y>LZNt_Q{~ zQ*6ML!GrRsKr)gTilx=_2rvJzaLS8+0}WP;KtEuARSdo%GdS=@mbt9rMo=O7SDnqL z95I%5nPp?nCNsDgm3BGsGuMKxGiu0a*8VqF!$}w~yJ-mA2}6>vS!f+Jrm?wdlUqD* z@XI9N={QC2aju;uQ-stuXdq`}Y?hJ@M{c>qQDhUEhDCviLULYz zacEZ~R-0i+So)1{8na!yObR|)iD3uKDQY-fJ^DVR0-Ko}vM(3DaLa&1(h_>kYM{|m z66AgGZ7IiSXCak7B*bcuA8OO@KSxCH`z%|+_(ks5Oc?K#nzyE-HtNcDp0 z&_552>|?b4oNx*h;W#gIB@bVmJ7lY(1{~}E%Kl}tP)h*d@Ba USOfq7I1iI|1xN;(1ONa407YLV>;M1& diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-compact.zip index 10ebee8a2abe966aac2cbd6540fc63fd11e4dd8f..0068a87b4c47c34e072931fd0bff312ab95cde03 100644 GIT binary patch delta 1463 zcmV;o1xWhL3atzqP)h>@KL7#%4gkrysa924=>&rX005B|001PD4+STYLL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#%jMDMT~L3XRWdtmF%7rKv?<&V^HB^e?^bQCLMoG0BQu?m>20Hx zFBS+%Uc*V$-;@to~v=uJYjRe}o(vA>zGEDK(6~HnZ@(_PVMKpQ%NKjj? z3Gv{YFLuK{dDk9xzt8TV$>@1;5+8_AfoaNBZQw` z^ePt3X$v-6%mpv-y)u6u|D)wArPwL^xGG12Be#IBY_JT5w|`2tNYYQ_>mn7C)5Gh0 zfhl$xp&4EJ7$g^){);`QlHRuGIp&)whRDvJWCIAFBb#^WuzkHP;Wtm96~(rectz$L zjnFje@}=gN56s8=+^@>$i8zB7KGOrI5#BZM_`92bjo{i1-OqnopKF(UmJ;u{j{|tR zh{N`RnkJlgO;kg3AdF%8-b;N4xna=!NP@`m3 z;T1q#O70YA6yJa0eoBaekov~oC`Pjno^K5s2cRWosm$D&0H_9E2(P=CV z`Zf(Hw{e+!CBI@*(g|01SXFHt9DGFsh{I!XI6q9e(jy>&3+iLnyOM=CR&ku&IF{ul zf*YM4R2Qd8K@v(n_vtPbKt(m#3L#^YG9&29(7Y%jXrF)BiS-Gv{M3=;-*?ilDdIqs zWjXPHnA&!eah7qDZ3pE5+g+%I7HF$;$yqLvi^S=WOX7FxQ&0fGXmc8z61u1Hhjt)} zDjI4}1=~0>lW8Dbp1u?G$vP4o6)zN>L7c6@+G--HK!tj6FNG;%YHG5o20JV{t8NGG zKIe>vDDi(A?0Hnm$!SicXzOq1JGWlWT}R4Y=Gf!xRzU`9ojEz61R_kFHoN*gw7{&r zb>^;uhYB0Z*x9u?3zU;goG4wlD9Za`=}mv3>UDz6DKiZ34lh}m^Z>5|U?jzXdbmF2^D|M5uW|6VUtI-xgUqHQ=wj%FlzcP z^UkAAS-fADOZ92`lcdzMszLw}L`AY1X*l(TM_8=xDplhS|+k<|1brR2<+&1TOyLy_T5w z;k19XSGk#>;AD5syL2vgZ>@AHSAt09IVf9>^J-!~s2?^H^P!>WbzbnG5$N$`2UQXY zL*cW04+IQn5!YwzWF+2N%JStM z&%{6$+$*ZZ{YWEvS#yxCBWQfSn10Fsn0wb?P)h*@KL7#%4giaBa8&1Gt*4>{0043j001PD@C7H4LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|c?G3>D1C;R#A28u_fugF=wXxbwtV?>s>V}Fe7 ztRbnc=k6gBn@}fs#Z)I}>;QirXZSUQuTlOX#U0njV!-J64Xj;{zxp)jOZ;FZ9Y?tG zmq79br@Sk?C*-HCz0UVHEjX`l=8X|p7owxaNTvWckQKF#I~HVtl-YZCKi&z^6WJ!K{>W0^$~(rKA^tBr<;kQ8RXvaG^7z zCM8P6)3%Rj7gyTVJtQ=}qIv;7;977f?2PU)P;7^GpX1*`!fsfuf~hqbkdIqZ-$5u3 zc3dV~m_S z<*jt6@~O#*4otfrfKb-5iCshkOT`Xb-V&^H3PQ#1nvRSgx1}mKb2E-bj7s}G>KBq7Fw6$5t6NiVQQAsxt4}$QE@`^!pzESC`~4|a ziO1YMhW8d#grwyNF#lkC2ET~IVc~=>a}_Jhb1E{}KzI=|34S1pV9gsDm z5g5&t`KC_`tSa&?iu^&SdR6cw>$E&QTcy)TMHsE1ANJX|X`D)#^HUYtb-e}YPZ?bQ yI;0^ozA62!)XGpx0Rle*KL7#%4giaBa8&1Gt*4>{0043jlivkM2IK?)00009kV_^2 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.6.9-legacy.zip index 20a034cb754088412cf7d005142102b272f24967..cdb2d2d02233a8b0c5cef6d2dc0ae06aa5642913 100644 GIT binary patch delta 1323 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 asa9>@qq1NH008S1ljj6T2BHN30002JU!+(7 delta 1213 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 q7 zKmxxqDXbWFX=YLG)P~!IVcDaLqNQ%fzj+WPd9YLGP2f!wfSsycm2>Ct!g7aN6I~lW z(+3w5rZhn$1cV*9ZkK?2EL$ho-kH1rEZH{foXEN%1wnDR8F>W;Skj4!O)U3;)Xo*t zyXxqH4|b+6&7!y+2~Su2^a;~sX}_<3=j@p=*={qs>bdfxb5f+Q6`!3CD4s1ZRy{n* zDpf3X`r1i&X^K%e7WVdD4<*IRW-y;z?3*{$(RmgT`CD&QMhU|f)#+E;c{Z5-RAHNc(nsV{ zsgxLW0uDS@Vn#Q_+Cq*q@`X|*)c?q6z}LBZOJKV1TKvaXd5^`B@{0F>cLp3bguSV> zaW}}AFwYexAu7V-oxV8vy-*Rz5Immv)6ZdJb~4FM>s}$zpyKaW|M0RApioNz0zU&k00ICG0L!_l ZRu1{rYF`Ba0P7W#<^)Ivp#=Z{002Fay8-|J delta 1212 zcmV;t1Vj6Y473UxP)h>@KL7#%4giaBa8xLR_U(!U001Bm001PD%mpWrLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLX9qSAADsB@EYccQLdI-h?SuSi7X|K6?R+wzTqjH zspNquLmTRGeUkCbT->R0XO1Y!ftjXny=uD&c6bItNzjF6bT7~nuw>2#E%;Jab<;9D z@sOpqa+ifQfsl?dSJu0k4gP)Q8d``ml&Rc^{UZ%PeO$}enOQx5&jxdywmJVB51--HCf}ZrVpwAnSKT`4vgR@*FOY3RQ0KbWWk0hy z-zO!OFrHJl_M~w5{2G6guh=vClJ&=cQ~jO0P>ZNE;)}^^@~ERZg9&-DGmw0nUmvJW z@6rRAegcQ=E*2*SkPCM|Ij>BgMQvQnBXv$yVF;)jdGZJ&$6+3a++CR^4u(!_lBDKc z%$2Wf4j{cbEhhLuKy{;eXg!?MKQoNrMiEHla?ik3SAn(J`GL2~?Y5etrF#`edx=|K>?2=(QsIDXr>+LAk)B+i0--hYg0_h1XYBBo?x_ut4Bz16 zp7{e)pUxs7inD(_Q=nP-jy~k+iZ}eEc~jD^{?e*2(iOJ^<@rY-K<}gT_RQgaIpv`t zO6_Zt2c5R_RbK5~>xh>B0eEv!aF+c(Ara=ZRA?HhD&wt4Kdzk7IQS#o+$0qhFjPO% zy0&2>>R&P=#7<;&Tw2EB(wDrHlp*ALh2+~{=C4lPLOy?8J_@Vb`!}+ZE&nYo?_&`m zTHp?49|~)V%xSjQlL~_7!I2@=ML>;=;F*qi^ZsaSJe7q#&LXnZR?-(y=zGz@r>orx zD1}s4s5FOD;t29bDE$N#C-Pgnp?eQsWqOZyx$wrO{79xGRURHJD+_# zVsB{0cras17XbCZO_Tt#UBm~1Dq&*dEtI8_Onn7zP#KmVWhA za*N+^2NtFfC8fI#^0>S=aV(rYlnS-bJLi6ZaI=4^2oMM=Ndj-K6?_r!7oc*yqxI8Q z@RHSAt_xnXl8i79hLTyjWSyh#$ZHoFfbQ%TFumpmHPT+)D`Od!^r$&ru|?kfbzg|C_E&z)(v80zU&k00ICG0E=;O aR4569_U(!U001Bmle+~-2FwHi0002H4Mb4@ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.1-legacy.zip index f7d4ad12d06412cae76d1a6a774695416e8b7026..0e264b72e7e391acc1181b6f31e89e38e318ab75 100644 GIT binary patch delta 1283 zcmV+e1^oKU3Hu5gP)h>@KL7#%4gkx!saDfD?rYHm002=F001PDjsz!>LL`45*K@rV zG4(?}j@uhy5#!~!@(Wg;kM&3z^RO>c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#{DkbKKU9)F)>?l`=7KIrT0dqCz7e#v5c{^9ZjUj8NK-t7zBV4+LALy0 z@Zf!C&dzg|d;5cE(fEDE=&*0LWoidlUtDnYlPqA0T0L0DGUO;~`-24`_xGTdpsaODKPbz`Oe2nK^iYyo&q4n#Rgu^deJtjoX|i62W-5YBE~h*`UbEAoeG#;m96S1?CG9WH|+u#D@vo~i*_ z`Qyg(wOKY;Z>%rS^__&e&Krs}(pc>Yx?P>Cy%U03sWs!Dl7vbAhb`EXU+tvGFS)G;(C34~4+-gK!O#QuGZ z2sJY5tSYD)6`yfg&m5dfW{8jvZwo^Y-OVBVAWAjHL-T$*F7263$y4(a5l*}R^h1YT zd#BLn^(}C>B4Q}*0Awr-&eWFUm*bf=Q(*gP&dh&5sTJ|#d7MH9pP;3F*FkMp*!A z_H`W&YVNp8_h>a=5RhhQs74abd=ZOv$4Az5CBVE|H4{USk5(HG~xNw~lse~s(Xgq|__sulnkT2klcj~pqag-0Ig(5<* zy0WN;q;XQSC+*8xFG@Tym_=BTLlk(D&ikLf*O7lxv$=B$*XRqnB>;OthB;6LjHy!Jjzp?3o+gd0W7>zS8zn})1S z-K3gDsP*9GecG%jmfzzsA**=PYhhbqp%2vGqOH6Dy^O3NHHclB-~04mH26~$Ik*>- z^H5OQ*_YDx^LyRUcy#{mHWBTUMARPfNdg8^O;IRw_dGzlzwncJ8nF--YyCN8Db5d$ tC;YK7j8IDf0zU&k00ICG0L!_lR?|7|YtaM%08tZ@eFR7b69oVO005o>dQkuX delta 1106 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 aa8%2n=M5tS005j0lP?8G24w^Q0002$x*1^r diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.3-compact.zip index ea955841b93d2c679177dca89d4705edf2bc36cb..dd9bd2531f859bcb864ac1d8e7e63fb9f20cb972 100644 GIT binary patch delta 1421 zcmV;81#@KL7#%4gk)%sa6yDA!lI)008S1kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+g^wPHy-G4YhGr|L(L) zJeU1jjfYHaU~%7n8M`)H=qpMKuBSrm5frMb=RXWz_H043-7rZ1z}CXbl^;hFpaaNk zCH+scNVo4c6ykxzw2oCDA3zEKU92_i9HN&y ztwAzjWwveW=E+!89_leZv5sjQwe?AT8|58fJFy_(>Q>Hw!!?60xTl58{pqH0=4G#P zcd|?F2U)@J3qNj+)sqi<`BGV@?=Rz6zW6yh+*_%?WiGD*-`&T4g|(@eePRuOy5i

Wv^P8&XOvXo%9K-d{Tc|1&T34>fivL(Oc^cS3NgHHM0n?5@YIgp6p^NWg zMi|5S(KPFSne&Nt0;nTZ5YlUVV?UDcb|@#Rh@=UFS3Xi(Hru?E4ZHhhm%+?z zQ9#7kWDV({(!tn6$%Y&0IDJ?!?ixKdaO-DaUZbafI)_%x2g%JeK@ zS)>c|xN_b@pEA!&0%(9I>pvn9sm*na0x(jL@H~k#YG{1lm?nJ?X1g5dgW1BVGs9cH zf-Zddd|QKyHmJDubcIIftF2ZF3@SpaT>t}r&8(T}g29vF_OLi&W%R&HSq8^0AlUWY z-G^O=lL4klhNHGITO|;^cAHQ{&XdNqIdw2JEYlMznv6WsT5bvKbqa}Uf4i!B@8_0c zQuc-aTIwIfLGGG9;|SB*i9w%}4=6^8bRlI@OON>0KKe=`++*CO->x-7vm%NXqQ--N ziQ0)r{UksZv1!6F$qZvaxa6sUCIty84zGEc?PF>&;=6^MW_K6T?42NwJy0U&R&}v! zZlpRW#AS@;w!23kb5-ZURjk(d&pfR9__BLT$WOf)3}KI564PvZ45RleVw*f!XkYb1yZmZPA)lPI{+zK>CZ@1}(= z`mxsXzKbW-TR4#NGU=cCVO%=m$SZ?bAF9)v`nMa;YgY&zDU~Ixh})Z?(zFt1hB*Ds zk?!dAE6g^->{q66FNLTQ1g6sRJh%}a>2~?voz%0h=Y_c-7!${8ot-fq_*Ha&9rd1d zx&PsQo;MsQ5^^=V)$UWjkjid)ZKPe#)A3$8*Ez3r_!=M>b`N`z(+T~e+KLj-EB_^h z&_J9Z$}3;QB9zz&I)#GwVb+eRU2X;s5Jv3Jdp*non78mTf<}6z13y8CtA~9&L5UNr z*e62jhO*C(%!M|vfcG%1ULBWV&vhIR1DdiLyDsfEx-nSIaa_~q&K3cl1IG9E2c89} zJ&OpCG#ui(_?-C5xN_b=qLm?5L;Hi-!WQSa6br24cKiQ&f5iY$O928u13v%)01g1o bxv5qY`5|Xv1pol+6_e!zNCu+?000001*WmV delta 1211 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 bxv5qG!_8!21pol+6_exyNCu+?00000RUWkG delta 1210 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 ZR#teQn_mS00P7W#<^)Ivp#=Z{004Wxz>NR^ delta 1212 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 delta 1217 zcmV;y1U~zW47my$P)h>@KL7#%4gidCa8yUDUA&J3001Bm001PD&jlxuLL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLXT>(yI0J(Tvb2l3qE<4ti6&1)M6GM=|66!J z0@NE`!@eFm@??B5-TU)MNuz&fAdB|7(nXyTT_yE1wOyJkK_*A+F-F0*soTYz+pEP4 zqCS~k*|8>B8qD8N(#C|J72@9CLB-jBV1S*a*O)pA=N>v^zwLn5Kg%H7dErE6dbfqozOeiwXZQTa;06TOc+u0qoO7a`G0sC7# zHLB2GuqoN_r0g7(S?v>*S$lC(sw7?2E9ghD%0| zS8VJU=zEtBbvcaQN=N`O3OnYP2+_sbrB3pwso^UyAAX9Pm&HEQB?CDUebTodp!9aoC--pjI|V*MTTPaYcBrY(Q>qsvN*r59J!=W{rk`|d%gb4=j9WG?2kr~A<}<{j1Zrx z_oE;H30UK%J`_2($xX&iM_&W7QJ`^8!NS4YAF*CXmSca$z=_pCN=Uxu13a6kWwu&o z9CnF-5MB2;G*5-vi>5}pcUVjm3nEx$jg%7e@k5=N_dz`iU}Hp20;MFIfbiuLUft)9 zqJDPN)JAgqzg2!%r>cFyO>i!WFyD=ZghE`YXZ*yvsdikd6u#ajrZEY%4eG&xR6%GA z^Ls~47`cC(-^|_|Ug7iLBckg1FE?kxfS>nz9*^>+J=)-4Su4HX`1&H&m0RV1QhE?D znTcri&QgaAErlhslvr-e0|GE-qEEm6zxde|D@QI=?i-hBfQz%;8}_+Idx}6R!kjhv zn)5iVgibb6wUx<7(3cQ;RF}0HCCU25i%?tkaQ=U@>*F~()3rnWj`h+!9hT62@TzNM z6!iAxh*r!%#2F+6Yy%~FR&(1plA1{!kVr6s+GzjpXyl6~qDsOZp$c+QeJ+m9rlKkA zA#|Bf!m*!2ou(s)u!o|Fr%_bIS~sV+%9^q`uw~?$ls_z{QUB+8N5W7`0Rle*KL7#% f4gd~}ad1>et6jX01ONaa5R<+INCwda00000Aca+q diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-legacy.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.7.6-legacy.zip index 82b428f4156b9ac276423afa82328d57aba3a8bc..d5f277e75bad7d37811e23465e632fb291e762bc 100644 GIT binary patch delta 1279 zcmV@KL7#%4gk=(saD3t>{rwT002=Fkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+g^*$+xS2s3O*8Fo~S? z*fs;BMUfSzQg~s1h*BCuYmc0Zsep%O9#L9Oq31M0`s!w25l0#K6YONu%!^JYiMP9* zZNYN#73lGnb@a8_(l1~I%zvtQl}DF860)LwqQqqU!e;Q8K5GWKPL+H6_uymOO^%Fx z*!`$cV52wA2UqfRPHh_ZGg>={m>WnCHc&98Voc zOoX|^t)ZF`d7qLOS)N=t=89Wc>4bThp5~xe4n=C9TYC#Wa&J7x*sD=M<3~ZSCSnEF zp@S8a7@C`ZmF8)2T*$@v*;b2Fnjr_CEiMA4jJ?hksKLErE1*rMZNWUqdI&btzYJa< zKu*ryjYL!geAoaqn~J7c!m5&}5s!#JncL&H9fwwFa>w5e#2R_Z_xtFEoS8ozmS1C` z4?zbGq@S6G^jFw-;)hen@p1HVs~__fS@*29>t0%a0YS1L2s03^ucuvJU?*u$wfb|m zc)(=>Kyq(?qK6PX5vXd%-0j-0lszsok}tg-0T zA&-_!t^C40Lp3Un+QtX>5KXTrbznrDx&x!BQ6E4_Kjs$2-sNSIOg*nBW(EN2^huW&3oAtSsl~YnM?*JX290HzCjr4fp-4 z`C|KNhJNcn6W$jc@c3dVt|ma+!C!FkLVP$2&vg?a3m4Il*W;fK2ah0H@2ndUkE?~9 zIsYvYIvvjPi{0tP5*@D)RRkt0ycO7gW|d+GH3Q<{yL;4^LhZ|e2m}&U4C*X~vNIOH z9kt6)hhhUHdK7;%dKXV)%BUvrBHL%^?NC`65?g9Ufa>48-Lj@;DtW|);aBde0JxS4 zgBcXHiAH))37eqRoIi&oY{cVISX}P?pvwXY|6IWFTc|iH8wX!>XAOZHtW7*q_Z7rl z1$2OnICA)1v&dv+K;yO7&(I$(VudI6Z6jc68=*hevxjumP^sBbSJVUm08tZ@f&@qg76kwR005@HWU&AM delta 1111 zcmV-d1gQJ|3eX7~P)h>@KL7#%4gidCa8v@n!7U~P005j0001PDK?Ns~LL`4DuM4|1 zvFXEmrMFlE-|-EDfXu&DCTrwg=!ng=pik`hOPFV<3RM2&32DvGt(hJ6BsqngVnRGQ z_1`#>{1)1)aPUjIE*u~%Fy(#seI|dLXT>(yI0J(Tvb2l3qE<4ti6&1)M6GM=|Cn~B zd4b;~7w*~gXrQ-ff1GpzEoFbH3|`3naT0Cd74*3Ryw3zBAq9z50c zVS5aO|7)~fkF|3cr}mi?=R=BVPB`Gs8{h?&+gU0Kd!Tr*g!KNw z#Or4lmMWiDbc;?VUy*;JH-i3p<9w z@Md3=_$y{Q-VL+8nvdjM@rT>vFeCQ&TI89m3$U}%Mqz|9&?F_fNQuJut@O(fNvhi9 zJJ!)SJb)B3nl1`>9P}o{qLE3)M)p|eguPbQ0Y#S4>v~`xDVTqur#LnnMs+-AS>zsO z;Xf&I3dj9kJN@D~71x1g8r)K$MvdaL*>eS5d_!0~~;v}tYF$0wps>ifMKL=G;vArDL zQbka669|mT6G5PA$+}$#bM*5L4<9IO;{<%U8{HjH`|p4Ek*lCO2liMbeXx)@dkCKl z(I?cgh7iu*yn#F z_+B^P>E>fKw@@s|DiigQd`Sy2BmFf?#Ma~lTdE9?afuT4_i?UZf*A`!4qKW8P&zdu z_{}+8tPX#fi2%GSjSF{ggKqnpu`H}LTugWlh-)h=MGLn0pRcdSpdI`FEa20a+ydR7%ePsbg$b>GuV9I+l1lUt@HPaoG#gfJ)%>0_w zUNZ)ES(4@H#(kR!C|46QrkA*k12F>o{>~eW0{|o!$K1ArkNpdOKTt~n0zU&k00ICG d0E}^PR06-jEhYp20Gtk!Fa<~kXaoQN005>Y0xbXl diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.0-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.0-compact.zip index f6153c491ff50c591266cba68bb700f51d8d2e36..45c48a5d56ab8227c51d1a0b96ce5b47e0e694d3 100644 GIT binary patch delta 1378 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 g0ssyGjB#*OHO7o#mjnO+X%CaM1xNV!Z diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.12-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.12-compact.zip index c6f3fc59ad32acdc865fe8fa7d2404d180f34614..fbb55e067f45643ae2b82c6c3668e730045eeba0 100644 GIT binary patch delta 1414 zcmV;11$p|s3jGTkP)h>@KL7#%4gl7c?wFTIrx4lHba9<-2)@n4afNK6v6ig?*cv{9 zWIJx^711JJA?4Gop~^A680Y3(AyIfv#GT@ANPo4 z9;jRwl?jTP!B-V#hI_^RqDX&@g0DT)Zusgy?45R(oP)xx|GbfEN+Hc`KbbAFEinqA zf{Hq}jN(i?6D?|Qh@a$}ITQ}`ndznK&Of+CAdKm=JyA&^AUXnWNQZ&KL0o%ooX4#B zk$~)rfwpR=JytelMiDa;fL#d{cTnj%QfVrRo!}L*)9Dx50Gp$5M?ZfsSozGQRH9KD zveReFf7A6c{HtEs zFd)Skd+1iatbRH*L&$%alJD&WfJNi?Xy(nURc!QL$i7<`)#Pknee=l`w~yGaGD-Y; z7fAM{1bMl}H5UAw(wV`E(3W1FXF-d>4=XhkRp3FZl8#bM(4h7&cJZagnat<|!H!%+ z=DRWMX%LwRk^x_uH@;yw9cySYtA>NqW+OY2q$RsgC?@f*mX!EfU}brOdq zYdA+a9JWR1WY$q0l?2w!N}OleRil>Wp5dUK7#dl}_7U(;jM~mLAyJ)!Q1uN#qGezc z0QC)-0>V<)ac+Na7J;mflD>W~aDc9THMXaa)@+tXU9BPBzF{>l4P&Z4oKP@Z_qv`h zP!w9m$0M|GCf|TMW@|MWRD`?S`i1NPinb$8dGv4v`+~F(#h(@3_AU@>GRh>;Vv>Ey zjm)LIIT@ow?ZK8?WvB#5y^aPF`IwbWUmOxUX#F6-k*HSAW#t` z>67i4t%0<^OYLJ9w*aUV;7=2#jgMS~zR}({8a|-6m|HW}nAT|T0(X`AP)w>k|I~y) zN2SMDP)Cj~33;t1F&xVU?NS%bCFz$cu!}mZY>7?qw$|dZ+)

2^v2FG;cC2E9r(f zlN#XoSM_h9>ffN6P&wTLnN)E+%ZJVv5c`Sq-ll`ib!8t0qy@WwnAkU&h~AJ{Xp~q4 zI)&39e&W*qq1zz7;6XHFK-d}9Kxu~0Qj!(OqIiESz(7;Ig9aY>>mgdjK{4qHgaRzU z+1pF!L98W&rAH`}kFk7-sLTrE$GQgkfw`zbXcZ`9J*6?$(2xK1V9jx1oB7+DbU7N6 zlB(Mt>=13$h_srj5~x>8oPoYKFi-%pE_K_))7r03s{rM!SsF8qd?XB9*Buj-l(J$3 zpB;Z|-4J{^KFx12hmvNaG;>eDdGc>a2~km%Hi#fsPt2VRvNP1hu&_#2M?i_s!PWNs zce9ZYNQK)9fiGb8Qs85E96){8)IX5G#LNSsMoz8k%&};?AN_#4R!h-w%gi^%jq6xf z%#R%`$-p{8SZUeu1(mB0q`qRW>CqY&M7~q1+4fR@?8rrdUXEf-$~gjl;*i?j(^b delta 1220 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 H00000UznfD delta 1211 zcmV;s1VsD%3%Cj!P)h>@KL7#%4giZ}=2V5q7;KIN003_f001PDzXd0eLMeYTAFQ^kG{*Mb43b3y`Nx%=6}^V$j# z90z8%`TeJQ-Jjy?ZG**~k?uZcpV5~mGc-Y2+u*9KY>ffCr35fmgxPW8wy=Mv0{upI zb5S(9SBh6wv)gUN0F9(oROKY3)KbKkQ_I@I#)N}wE^Lw(mDlVPi677XtD$w9&7bn7H#{DY zZUBW*w%;&|pEWLb>!N)I*!NIN%SgAmUkC*tIpXASq2{Tlg~!UK9NvG@XS=Pm5zlGP zfL=fmEk?g=+<-IW{4<5REi*)ha@Uo;gPD{rBH zJuBY5R`q?#c+IZ@sjS?yS!y6e`iaQ#^Km*pXuEqX^1$cwcYLe|R-F>Dw?;z`br%;_ zl4d&wW5(hlt78PIvaEk)kyNL*oxyCP>PB6;Xd5gClB98n96s)qXC0X3(2VXkZPPvO+TM{pm6*YnZBVfr#*Y`6 z#KxPSl2<4}VoKa=9|E1P7#g7};FLSmDx7`5PQ%_!?vsm`RCwh{G!@3eR1H67W)~Al z+R^_XbVFQUbXb37BWgJ0EoUQa=a6Z4r=SP}d-iqtZH=L(sKLb6#k5PKanLiO<-zJG zn*X!%uNcv69rr`ciwTvEBneed*k&O@gHZq^<*LwdGj^JZI`e^#m_3 z=QV}ygyMd^w)RGnsMCIL9ppFc!>h7SK$axA3(4SJ6-$4U&<2;b)ljB9=1hl0p2#}m6f)GbZBU#U zqAU==ck(Z+ZOQ_xxjam4eh=n9!3fo)dTAr^=(YQPqVL`9XP^L5?ea`KSe42=CS$Tv zKf9Ri3;=Fr4F*hdMZk^$@aL3RgG6iEfuhR$<$i+y@Ro;>P)h*or~0B;YIt_4U2&;$Sg006uVR8Rl_ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.15-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.15-compact.zip index 30420079bc327ce36f0e13ad2b64b41a17d8d3e2..c1e1b9d58190372639f1e70a0134ae4e826805bf 100644 GIT binary patch delta 1408 zcmV-`1%LXz3jGTkP)h>@KL7#%4glA=saBo4qLunQz0c?C*YT^yhPvGVu5-xAn1r@^tzbB?%YQ`%e_yKFiEosDCw`hwuvtsKf{n!nG{h0TpA5jG!KPgB z3!#rM)*r0^ZuxJvsZi3QJ*I5_7QA87ml011F+t+;6PBP{C zYF44ZHMSo!bVYR_r2FcG%HU{EiEmgkN8Z(#hK(Nfm^q^*Q5<5t_W4)Sp zqMl)eQnCVprg+t>xr8gvEY!8c1oFYiYD7&W;9q!Bi>MvCzbtMRzMv-#OffOu@5HMkk{RUsa$Q4|T3SP%LEsCO=ufI`|N<^8yh0@u(!f%jpBwYUnvpWfsYFX%DRm|V$KYe?XP1% zh<|oc80dJeE$bgsQD#`QBQ2W-YYUNzxmI0x3y^=$yyu5FSM7f`vV{>Xl#$%72F;3i z!${hj`?->DxgZ&=OmAH6$?_RejF&sc-jSmmG%+uMF(N5XPGyjMj)v@)|LI`kU8Egw z0sM75nzt&qR{Z5L}Djm7z+d7G2hk8d{chq;r!;L&`c^k4~ zA>q5+oB{I1`eFR;a;(~<OHK)yq&z0Rle*KL7#%4glA=saB0000F-Kh}( delta 1216 zcmV;x1V8)z3%v>(P)h>@KL7#%4giZ}=2Xl96%>;M003_f001PDzy&9fLMeYTAFQ^kG{*Mb43b3y`Nx%=6}^V$j# z90z8%`TeJQ-Jjy?ZG**~k?uZcp$I=GGc-Y2+u*9KY>ffCr35fmgxPW8wy=Mv0{upI zb5S(9SBh6wv)gUN0F9(oROKY3)KbKkQ_I@I#)N}wE^Lw(mDlVPi677XtD$w9&7bn7H#{DY zZUBW*w%;&|pEWLb>!N)I*!NIN%SgAmUkC*tIpXASq2{Tlg~!UK9NvG@XS=Pm5zlGP zfL=fmEk?g=+<-IW{fR{zY1dyRAWp=6ou}kAZ`~2N)A8dLX!TN=&Ps zP368Twj-7W@#*xi1%!Xdrw9aTW4ZMOU(kU)XVTDVPDG9E@rAjPp?45?vz$M|RA%K_ z@@_SF;EFd25JEP0WmE;s{~^YiToK?IY*cvB$Tt;^|3e1_3SHCkR&)NFqH5c#e=`(V z_)vgG8*>$Ivq;a>k{qp>_v>!(aF!6Fx7lXGP9Mq#Fb4LaZ7P3%NhsygZ3mJ>xGZH& zEQ)F&++K_#qb0BIgomZOTXj9$3buX4TgU0goAc4^KK-jn+yy*+>WtGwjgE=?3K|OW zg`P+q@62JEP|VLZU6jKS2+FQD?A`c%OIWTIA&eP;-$$a*{pzcmp#@C4`;V^sE86=O z094TDUF*k2#teU{pOT6|_uSTiU0|gIJ~R${?Ep{0VKQ6tQQRgKo!;i-T_liMNiVsZ z7ffNK{IK(_U4}ty17mb$f2y+ki{AwTAJK*ujdm=N?H@P`S8NTZ>c6KM(se?Hx3wvh zJ*I9n{ZG5VI|!;m&I@H}U*zQ07L*FuCFW;C=LRmi>$6dbqD zQ=QK@?K^*!k-AhNS0c=pv;v}hISkzP1n~LdqGWB;svcqfK{Tr-g7Bn+De4=4jN;M003_fldlCx2Gs-r0001Qi%*XL diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.2-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.2-compact.zip index 1f97f78be76eb41b812992218f1c36a3c1bd7929..c67dcfeb1ac3be785575079d79c9b85b2b73fb68 100644 GIT binary patch delta 1395 zcmV-(1&sQ}3h@gVP)h>@KL7#%4gk@)saBP`V}?fs0077pkr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fF6Cd=-1bEvuAg*dB z1A8b>oV$3y!=^fa?3VgDwgshY0Yei)PKFMhls;WarxW3AyLZ?^7%FT0+hed3n$l!= z(YIBmv$YQVqOk?Jfg&VDp$DWfe8y_8XW(=t?R{={Hwx{kWB6;C%pJiLgQnx}9l5pk zzBuAE{`msea+X2{aW$x(r1;wzQMuZA5AGgW2KBdvkd*b!ufY`PrYuH#W%~wXO#zv z1y zA}eWrMV$(_OoC(Sru6y;WZNDcC$UqAYkax8gk|qOU>#M*4ZG^WYNKrh8(Y3t9`32^SdvA%U;jxy6lm-Jv*AsFM+D32>R_g zP(@dN<243pXL#`-Bb=92k+I* zJN&D*MRAaD#L#_vg!|RS`?D5orPlJD4&jggFK~cp13~)oXiM>4{|&76-~V}BjC8Pu zpVxp3`F$0zBb2(s4%r(D-xjLH*Av~P`{rbSby1sd#ckP{0S#kaPeL|m=v`xYtj*P9^ zs~**)9{D2cn~x1}6DNM5hN8bfTss8`-XmA=Tw;B^6_R zkTw4z{=yi9)e@i}{0UEZs-XgOG|JTp8|YI7q-e*@@KC|P9DjOL1}3G|9FB8;AJ$+P zBDag!Dbgm!QOQ>$J|LDM2Q1rdhg7S7jU3r-x0t6Y$o0zt9jJV5XWdp>PJ4vWczf=+ zW4UL4{>|ZaobhB@qfxu}DXNmHnxwG<86K)4$K-3Y-fAwy`6Q%C+(!H7O2#krCa?>! zKTaJZ>iiFZWV`?#hh6HAajn^&EVLI>8n2jtWHq%r zUl#SNEBp}=i4@0rY}h7@Y(lyarK0~hX*4C%keT&XB8Z6T?%2hgw$~GJX8T)Yg~?M? zFTP%pgD_*$CNk_$Rv_>y4LqMnKx zjJ$OCyGfoUxl`rq^{YjcmHgmG3(FK@p}stXfwX~u3CZ%7KCf$?kKxl7Iu|M8Fb%N8 z4W)M-0C$o7@%`IiY*0%90zU&k00ICG0MWUrR+YMAhDQYe0LT@S_ykA>i3I=v006|9 Bx4{4a delta 1223 zcmV;&1UUQg3&si@KL7#%4gidCa8%#FvlN^J002`Ekr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6FM=e8-ec;Gz0-uSN~d~X z&+TKzU?OXBeElZQpG1fyzukG~Ik7zhnUAP{1=;uyIHTj;krI6Q>aQcR6m%uNc2QZz`s1W+d((OpWt}kUKroMW#U+rI zk3$}LHLnmAoMsf1-V>l*#AF^d>p$2Q-u(h|J!HwqtNPKGocNW0JwIr{&x+%>{3%t4 zRQ&?W+h9@uE!6zKr?}$kxO)k-cx~?%Hqk;+$jEko!%AQ?>J^_JNRbWc3)siM}x*l~oQ#jvwVa#ffAb2l73zfmSK-Afc&K{b=8J(WyC}*^}-M^<4 z(@dcFl*B03q!$*Atg`(&BBKL?H;NKWAXIeae*BI}eS#lsv(^Yva@e44P+r%ld+@#r>_X4w)d7VSw z&s{7PCrlu;yq@>=7oz(fx!PPx*ZvggeYhsB`WD)S+-E5&IK(gpnu}=XQvsoFU>--m zJNuSm{$K5Tk{IV999Z+J81Dg)YZxe@n8U;)mfDZw{a^)46Uk^?367oKAbJ>a^p9nK z8P2>_&~52Miwv|;9mc7W7-yJ_38oQ&fF2LiNJHh*&_(zLcWaOctd;UGo;6f~M8Hp$mp-dcubV(|Br*vL(FGsnD(M5u8`d<%v_81-JP)rlhiA^m z66InI64gzuW-*mJxU_@2Dbu!#Dc1IXsHRF^OYtWVcUhQg=8XEZ&t~+yg+-1hIG+&X zChL+L3O`CQYS=%=mwVNTvC+JyBi6(MSjD#a8UFRxCju)1*qMe&7mlE1=qK$+BO3k< z7Blcwp}IQ+(15j(&2NtZsb=E}7-x30qYm%aH%UZl8@+e}!2b}gRh=LIg(yNB08mQ- l0zU&k00ICG0E}^PRNud|6r2PA083ib;aP)h>@KL7#%4gk@)saBhn^JYv1008C{kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fI-D&vFwJm#aBZFR6 zW55D#e4CGpFV+=*G8{hZU!Q5VFWbb`UntV3l1FEWwM9|hN;J|V@GM!mWDm(;y4`nn zGF(TV2-27ukzx(wi${Z+=8$6D%RlPOVxaYMX6-KiKshlsb74Z|g!u43hi@XQ&E8F^ zP0s$?<8178o=ZL25rLd+y&aMi`rgP|m-^|s=%SLbuABpZC6OpaJM?+aB&oE54|38< zUV6Yr0B$0B@yE$D<3_wA{uAW4kemWyUdLn9A)avPZoJXxdic)?ol(yYC8=dxL=v#u zxahLNf#+O$-e5~WghP<*-xfg5`w<>w8GwsXS?*RQagFf;6V z)`xc#Sc~X?5i=)NY&r;Yr|e;y;>DMuSR(YFC`)eoE;Ebya}M%98@0C^t`sOr8&CO_ z(Q1aj$Cj(WpgACa$0;6zI7N<`3T&;-m-09RF^$m5rlOr+VBI!GgrC~043oru+qY!H zU=e3Ga|QE{d&Q}=n!VPP8MaEYCOEK@iJ{Mt{dJvx1$@~#P>YFFi>CEA)BF0@#TZyK zL5W)f-}0Ra>GN!A4%(70VHA}GT`oZbtT;Bb-9!<)i033K=a#o|NwW)DSN+oPhzY!G z*mDHG!+=Ql2J`KS>s@TT(S3ff}yjG zL5&5(H{fluO3@mmY^!~5%jsx%y?-V$V96fu*3B5vCLT3&`QOj{SIsybFru+|fKc>* z7oTHzf5eX8q<-o4T4OB>J^F>lrH|$O>gIth{Q`qN{3MA+38r)<5knXiUfE5Li!$dz zeE-S>E8r}vXQno%0i%pJ(IQW8{??+lNIEDDw-^Mkk2qI^C(jNe!-z5T@`t;aCBWpti(RV z_(!0J2zhFp&gXqmw1h(1tZ3O%WkCN2FM;zcs2v8OX*`ghJv`{u+h{UruH^x$@)Bd; znDQ^yt<4-W(rUr$U&7N8`&}sXh_$G&b{E2cGW5I%{XGYkOD3F7C^PKXe;w3+ou*qw zn97s_76d07x5<5$20~h8L`gd(Y)R<+mLY3?C!)(Vxx?4Z#FzrqAYdpgK&`cEQxBdcp-^OGm@$C{IVlVl)IWubTYakMfl%%vu-H7)bd!wkhP9Tc!4Sisn%>Z2iDs>! zAlLh&u74-)Ytg6?%io2!o#nAim150^0bteJIiU=9|2i}b!x5_fnh>#$>m^tb!79PF zv_9Xfqws&_o}4QK(f{pg{KQa80Rle*KL7#%4gk@)saBhn^JYv1008C{ll25h295;) G0000?<)_vF delta 1220 zcmV;#1Uvio3&RQ+P)h>@KL7#%4gidCa8$y)2KSi+002`Ekr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6p&{)*Yu zjKett(aHDDs;9+VFxNOu3-0!nF*wytIc=EUV;a6Ur90X1pzG=4dQi0XxRv$d2Iu8Gz;IBppz-7m!YvIR-nqj)|Uoq4TRSE}OP`zUuCHu_}H z#6fm)wB4v|xvM)kerPepc8{`*5os5Y(|{2xMlTQ9p0}dI)cj=38~u1)RpgN|-$Cro z_@{pX@}R>{Yk?sh(DD*r57j=GRtE{zjN^4Qla(`n1}k*qEFZrh6<&AuXt5Rd$E-kS z{0;*c)Ly{V3H@cUt1I3=m{!4Zu`lU&K0!Ph@K4gP0b|=d1>#@_cme@)hZ>{7m>rS$ z{TP{gAa(r}q;6tD;YjbNkElw32rQA;l1=T=b-^y@Vl zZvNQ8*mif|U>t^YqfL^G0P#-H3lQmS10ojlL2hYk+C<;3(9{TX1{6G8AWLPEl*wN# zqQQf00=sF&Ac)0Kt6S3dG)j(g6{)pHjQ-Ebq=PykhST99hum%*L^$ z9dkoin?rTs1)+|#q}}DgrfP_#2u*t65-z?YI7BUEX()2tSBeNRQt4l#MyC$|J`GuI zVQhNgM~kW}cksZ60mque(=@t-N%#VhmcP;z{l~i-D@80!+#`-k8~qcr2~bNI0Rle* iKL7#%4gidCa8$y)2KSi+002`Elc)tq2HOMx00011i#|61 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.4-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.4-compact.zip index 9e3e978c0712d33a7fa69ca1e31f72fee1576e4a..6891b902bfab7bf7fb1f5e716afde98685f3a50a 100644 GIT binary patch delta 1417 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 diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.5-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.5-compact.zip index 6470eacaa0b3cb35ef39952e5077c0eb9be9f945..b031ed0cdd57fb385202a604c81bda430ebcca51 100644 GIT binary patch delta 1410 zcmV-|1%3L)3V;k4P)h>@KL7#%4gk}+sa8Eu&_h-Q008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fQKzKS(Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4t}^;y&#w=UF(v zsR+J_Jn<%fWKy^1;s!i0X4zR`E-+EzA=Qv9P6?%ts=zmj(1byQ^>8_#Pg=r-a{@A> zT}6R5=K>^}KZd3g(X!XDunKmR_a{&i_<8vY2{=v!N;{MK)Z)8VBwTs`E-lmsot75_ z-B&p(>Yx3o`2C;4I71T$L95z#dW3K49VYrzn7`4^FX=0$RKiAAeSBmC zlf(BX$w_a@AAgeSD8S^mFoaj)OIV}X7GspOqFtpH7lgLW8(`*Wv%$jnM^v}f_`Clm zs^YGHmtP(n0+CdBCkyG`hs)MN-3o(G%YAU{8Sse5d-{~e1AlFdYFA4+Q_b%}7g<>v zT?^8J)wkMgKTgmaKRm9IQ5Zm0ERWnrOz$pTT)ce4q9SqCNy?!$dci)Yes8OMMLBO!;)?%xvV4uKvg>A)Q=*rRgY=sDDff?>28ROcrTg60uZ>Lysg(*t=3_ zPO)BZC=2L#&%m2Sd{=X5)AO5rFH4)tqaOD1LX}luALN0~LJ5@s=sDRI?P*1#_UQuV8&jZau2(Cn~th-4{z`o{=vO_V|*%*fX$ z?qlFgjk6zI3=0D9J6LXX;lHuoKm573(6X!bqV${Xq^dJhtg(lBna$Rbo__`J89tdB zVQbkGqyXJW&{1<9Sz;j!S^Q5{-8_C+O|}by>_Yu(R~vqyZ%ge@jD){uNb}|~zvYSB z*xV17Nhp9ZhkV-<11sT7SSOK60O>aV`gJ}pP)h*@KL7#%4gidCa8zS-B%PcD003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJKdO4ibH#1}MAXD8oHXykoJuzuliL4kO$X z`TW6--WE#{bE12Y{A4|ItkctWiZB>*YIDm{>YK?#9HR!z-gnbG?CrCu1Nf}HkGBph zDCN+IUI7P9Za#?2y1B^!9X+u@$W72~4G5qi6R?TX%P44n->mfkSrL@S>wOB*yG1^Q z+!a!%=e*;3T^hsMV@qyhYbb!->UhUl>tOmfF^7gsh+s}Qq1}H`=Z!O^`p=6!_`UE& znJHj$Cyb6=MQ-SRZc>Zt+7ZuCE}(Co1iw)@$t$l1^yTv~Z+|s*wW#u31{GUqyv?yiLGzvkyV@gt z@UjTM;730i^hU)89rIy299Y$@m~lhQSk;oW7(2PU#{w zY|#nFA|7(=aFnVA-X6GtSCb_gQJo0|z8B38khc?gP-dg1I044Jk&cxS-q1+IiXr9c}eP|23d8Or2JTS-l*Fjq8B7qN(U+xu|G= zVK^>Rza;{JURmyKTs#3Ob|Y-%mY`5NLV3+2{W2}W+WqaV_8Hsbn%MI+Xi3Vsq}E4q z`V0ZgA)-yuPpIhjEBFw&X@3lraS<`D+%mTONoC(CYsdRLa;ZROUj(Zk{Dm{)BkF{g zyeIk$Qw(g~e?h>qI1TuuIi?@(}LbY*b;{tp+KK|wPa3)_BqvsNzOz~T*q{Gu~ z^S{l1(o#QK<}>`-7eYK@p%Tk)f1Iia?6lh3AMXY=K|e`5=05>3cUb1XOQA?3!cG@` zfo{0(kYa={A_3Gpb2H`*L7dQz#ec#?Gt;dXS06P~r40(EDXeskv?;>>@PlX@)=*0U l0zU&k00ICG0E}^PRAY1`oty*!09+80vIR&6-UI*u001biRzCm$ diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.6-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.6-compact.zip index 7eb28aaf812faae662e2f3de3a5b11a5fc8ab7a7..5951c071a98a341a5f29f8a601bd4a87fe7dfd5c 100644 GIT binary patch delta 1412 zcmV-~1$+9(3W5w6P)h>@KL7#%4gl1-saB#mu9jE@008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fT?Nbp@Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4oLj)q<(8nR(j_~Oxy;?~r z3pk57yAi8@z!C}RDn?~v@dh<@)dDmy!cbfc~_Y z7%o?V^1L38*&XJsZ49wD)sNQ=k*mi1^&E1^9p|xs|3cFt0%~udw9nEqKYGO`uDaEd zbwH?D8;MAUU#f{|_(8KrR~RCs8mHrK>i~fDJ_M)oWA$p9>DSL5&K=aTyrvq4D2rXy zplkv0OZ8m{j&T9)KxeR%YD92&x|YwuM7}_ECW^fHifC= z$KI!V{y>2WUnWHX0V+HhDMzHEcC zYk|tzLb?50{>3FNC+%iV%$L{qSjd`kkt1Axvmod{%uHcUlpy(i1A^`T25?+5Hexej zz*8ibm;uVRp1%`77thHOxq1FrC}SBOfY5c(IIq)34gRzX8#2-?VOyYbrlSe4(TJf` z!4zm};PB$xm zW?socC0iX+q+4zqelDaY_;RS%_$V;And2m*Ph`3&Rr#^^H5HC+^;MTw>WZudWsYzr|$|e&m0z|*b zPBAnkxOCV@^ggw0oM|BFx!fFJ{Cd##C1a}c>5{bpN-7@WB+KhTtVAiQh$rNv9rDKU z-OaK|4`r3w5SyY;ZjVW}!BANQqF$V-gwc&Le)y7V7^y=}v!{nsjP)h>@KL7#%4gidCa8wE`*{Pib003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJJ)@E8lv)G6P*w*8oM@$qli)zuliL4kO$X z`TW6--WE#{bE12Y{A4|ItkctWiZB>*YIDm{>YK?#9HR!z-gnbG?CrCu1Nf}HkGBph zDCN+IUI7P9Za#?2y1B^!9e7T`CWfTfYLW?-X~#U!oEW=*V%n@X0Sq38aiC^m{K2+o za?xlMXSn!pR1mM;5sXQcj^$5xaG3T5)(S-*UP?CUw;{C3rmTeI-#8xw;cOR(N(cZ& zq0w_+6pk|g(@;pj8uD~!Nh028akMIk(H+c}L-L-ja4&1}H319VimvY(hJ}OSMtr#y z-=5N;7dx4MKz3-dz`1m~c)j*K#^bjg_Y?=@oW(J`2Ox8=FxQW(a<1@zJIYIgYmQ-a_4hpGk&!578aE7eBCU1_gz@Zp66=VIDJU;)nv zD)I0y&~&*h_5{e>L`WF%x%vDEEa=V@@Cz?C>~(P(6;K)%SjUy!TTKa<)tggxgyuLO z{tPyM;iYmD>sjy6tE6Bvsi<_ZU8Tkrl!L;FT?aYQZNDp1S7!WhuV-fNx{j^!U3c9` zQHvv9KRl-mZS5PdoYPjP=6yIDy*0*J6!xq=AZgH;EeUMZUc89NXQ@WGIb^5 zNS}fbBy|=$A}-9OGUt>@P*Q&z)jO4bk}6FK63_!dzrQ4t(dWUNhi!KHlYIgC0MfaC zIOf-ARquHA2C*lXJttAcvsgzVZ|c8ewSwSHO9)}u)4uZjX_s5% z4I^rIF$}nzQal^x z!E~Q$d$1iO|I#hS_-`vH={TV`=_^A#(pUJyb7-@|s>J@F)3Yh#C->8&ZMZ$z>vw}S zSaPq=qJmj$1{ZQ=Rc~`nor24L-1C?c2nP0Gd!kb|+@jGTeJcd(QS8?B!TT*7d0tRU m0Rle*KL7#%4gidCa8wE`*{Pib003MNle7g$2Hyk#000267*16H diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.7-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.7-compact.zip index b280b071519123c8d97d3c498594c74a639f870a..c3e4a2a7dde800b9d25828be811ad58626700e52 100644 GIT binary patch delta 1410 zcmV-|1%3L+3V;k4P)h>@KL7#%4gl1-sa7i-@XuBS008n8kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN+=fXnlw64Fk5dKwz#D2 zbG3s;)Si&;{i|SqW$dRXV%KM{x}1bmdxiHWDGt72Y(#a2(@y8=I4rbSt#^ zn5GE`O}G|*w_g4SP-Qo)pS5j>JXq=K_(6z#|)NaDlyucnsyQ$MfSl+G^*!s5$MX(2E| zrVczL2QYeD4AErkjHbS!3>^#5Vq~DTO6xHodVdNC{KHAM(5`kI;>7!-bNv< zx`b(Ko)^1WqKJ&WSStAWmy;$xQP*{Q_BX0-qtju3v58};$LFbIHETA3evSTuGbJ`w zG^m0CC!}9NY^cIW3HnG>8K9v{g-rs`T$ExJ$qT|%hx;9!tm`jDs3Ft-aH+HTtCEqz z4s=+3G$@Wt5;?&(Um;>N>oT>A~?}%>+qZ^=n zz%c-S3{ETR9#OsUkwep&i_;W|wTC0^J&`zhy^>KK{^f^t` zC&^YT%J3X%hsP|*U#E?%D9%?u6RU8VJ6N=8Ps>uVu)!l;cHz^1PyV3G-V!d$ydv(tRphiVED^=Thn2 zf&Hl(p>S#|okok3TpU>|Dz&5q8^U%qryrIaL`kFW^c855XW@C(QWNJ3!X1R{9`_6e z4Bue|E|?;aE}YEskuoAU$(fy;*paZWZ2=!StHHfi!-{rDg%LNVa>vBF+-MdJM#++Y zFN8$zh^Q8Sj?@KrzDqmJU5n?MTzfEr3D2Ap9SP=vIBZ>;>olfGf#oGjTu#tMARy>| zyeyxRbyJ47-l2T$@F$odh-bMPJw`;)S&kPxS>n&f$01&m z{Zg$xX7tsesCD)b;jIBVIX{^+op4sw90RwDc`*s6&??B-JYMi)b<*T4M1Tk8j>^d)E|JXNKcfD3n7sx)81_9QMr|_DI|o9InLK8WM#hH+f>j zmyrqvygW;l4F7;?h{L7B{KOIx3hqW%{%hn1P)h*@KL7#%4gidCa8wE=V-B7K003MNkr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6zg%J?GXPuR{poo@h1NF|m)MuF2-> zn~+>s7%;k;P1d%5b6&Ow+znczzx7;#uJJ)@E8lv)G6P%-&El>y%E&8E7+m_&9Tmk^ z0XV-b^}};d8vl6Dtsd>k9!D6xUEPCx&y!AirbWC+THB2Udh^$3)}I(|fianOWxtWo z!4mqvb*v^cW>T0HlE36$LYs3~j~L=BD*@7aRpUCuem%Z_qQ^$Jk(^mVF3>PTB`qOj z*>c?F&IJ~(1|>5_yZNg6Oa+Qd`B9bp5C>YcI3HgyaCVtc{*~cJyd@i1;cOR(N(cZ& zq0w_+6pk|g$|8&Y{ojpMQb;+#sSW{|T+S}#l08cmOTg~fs=>bWJMEsf13AnY{0|88 zZousU?R7AJz*z1+*I@obNuncFG}aDh73Sj$kDWrd*z?#o$ZU88wyAi|iMPCZ;fR`=HnQfZSr68l0b&TP z!2=7VUX}}0ld|G`?L{iHxG4XHR#o0Y^L3&Se>?7f?WdBC`63I%bwIcn<`^E~x2R4h z8`mk}Z63VJ>0*H%wwc~a+PMrZ(Gm?yf`fQc2$&efa22Vps$ryj16vr!r0g?r8aK~wfh(4RY}@)MAf6pfZaO%GuirUt!p z!3Ir2SPU&LmD$0p8<$taF#&!Nr{_L;j*KsVp4ajy<6#^>9W%>{8b!%(hXV4q;�L zI>q9ZI6kM!1C&MBo8@HI;|=jc9?D%sseuz}=R7>@MRH9@gTr-b^6Z!fU?QW~4b>;o$tQDy6g!IK9bejD||iGTNZ6AFeGs3Thv zsQgtt|K`bk$24Ad(IjKopCQuB`X~4azr&&;AKc40HhGPJ;x28blU&8Z1paAU@-=ZG zyt+O?5#6;EN$~?!L(e|kL^_LicpCqIt7KSdPig!CtC}q5mhWvK#cj#J&~UI(SVICS z`7abCFW|AN{Pc+E(SdL#ql?0TN^PJsO$x@{;GU#)4fcAdJFaOmYeb4z& nO928u13v%)01g0*ad1=$CSwks1ONbB5R@KL7#%4gl4;saEGB9T!Li004;;kr+;YAJ=oe7BTfhK91WP zVG-lyxbh2Do{#lN8uPF(Qtp_SNT(3l)O2y3ZV0~3#BqgeqOq2(0oWQof@C{x>J`x< zUm@kwtf9&=y%^`_Tp>|-PR6pFB^0p^TfSaXAthZW;FqqvN-5~J1)n^d{F_qQ)jpIN zXPyY9PkPrw3WW}TlJPCF?%9GkEi^te8s;sQjf~yMMd_;9j+9B_f1fO<>5s`%p=ViM zsQUR_2|mxAF7$!JFOX7+!$At1@ZzbH*eZCZeu(St^QEUSE;>rkC_;@&Y%~yDVuNIP zxgA!1flwxCi$eAm__gvD--k1icF({|VwbJ!=i*zNcB$Wgw4c~7)~_{N0f9ea5_ySl zV2NFBDmB3dTG-9{-`W+r_7ii zBI)~ybS?RfcAcn{o`ILL&BGXo0eLV5LjNi!K1s8YWz-x<5=uZpHW(pFFgg+%ixbE> z{U=aqpe}2FxmhQnDD3%HB`Y^^i=1?g4FxYCp-BO+j_>oerKw5D1qIrfO+ujHy_XA6 za|kNkXRvgypJO(@k})~AI<2DfdN5~)%0*R4a&k4+WWl_`;0o}b7i=-_Ed{MD3Yay2 zzq5oq%Om&-l3*D9EPAf4>(p&-YkaW9DgBf5)sbUG`i&7>egKq|+vA|ZdS2Q7%2o4=l6i_b1 zRm=n_R8{8&;TLNuMlnp}0<{NiQ861WLLAvd)NIF4$GKUBTv6wdb)Wz{>fmhHgeT2> zX7gCY!BptT;@JU?(*S=_|C%r4dTif+cdAcX)IEFkh3tN-!VQ0wqC0UosV}^42QlUQ z6iphjr359-82(QL9Gc^cSAo-bTlv`CTWHTs@Hto9u!~@^SC+z=96QN>kN1!{ z)1V_bU>E|*Gqh@}62g>;)7hJqA(4C?%}>K;_?rvy^5r){qc)WxC()g`dMtK>VkXh_ z;j%6w(ZiE;lL;D01_ahABQ;Iq+$^Ib`s|?u+SiAnt@ocx1%nCwx$P?1kIDIjiZAZ( zs)vM6c1TT1e+UWEyGwi{BLRaih*J!lc=9^xA=n~;UW2uNXwTVS zl?;E7@vpo+w*P_G+i*}z0Rle*KL7#%4gl4;saEGB9T!Li004;;ljj6T28sm$0000< CDV>b~ delta 1206 zcmV;n1WEhy3$+RuP)h>@KL7#%4gidCa8!{qS4WEk002@Ckr+;YC$9^;HL>Z#d!@Hn z1K;rtgMiGxRVHiXUg(I;wV+Sz_)C~)s0vj6BJ9@O?8`;t1Ju zf(vUk|N2wA$0z)MzT?6bfN(WXM%tgnnl9Ql!=<}gT{#H!oU9syhBIfQkZh5W&Vcc` zHhq{k*t@QrT?XEs0C4bTkd>Bz(dO*oFLAivFGoK~S0ZMfB}Ua+%Dm~JJ;124yoy;9GR;FbH+;ROlvt~JB)A#8$SS6Y_Qrr z8D48kc*EE|iZXgd$={KXy3rp?+w9V1Q_LV@R~t9-R8#T zJ=;_4O96c*3Y_;Nb^uH1oRAVjht^=*rEsco&V%>1kGO>4ZiZO=N?)D4-*$6&U1#*p zrv^=pPci+_xJu}1lXXy<#|CfJ_hj*ZalWG4FfE=Cz#H1q#)wBDl+BCNUUOi7a{aBG zv_9#lg;+XSu!hU2@2}5`ORR#He?}wR={z_lGa?L7?mUO928u13v%)01g0*ad1=$kuz6E Uiv$1wQV)})1xNpF diff --git a/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.9-compact.zip b/tests/e2e/solc_parsing/test_data/compile/assembly-all.sol-0.8.9-compact.zip index 86b3da2123a8b60ae4cc6fbc7e1c7df31e100ea5..8c37f7b8f5a2699361479a5ab642294f326be53f 100644 GIT binary patch delta 1408 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\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.13-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.14-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.15-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.16-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.17-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.18-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.19-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.20-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.21-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.22-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.23-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.24-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.25-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.26-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json deleted file mode 100644 index abe08fbbc0..0000000000 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-compact.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" - } -} \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.4.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.13-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.14-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.15-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.16-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.17-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.5.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.10-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.11-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.12-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.7-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.8-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.6.9-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.0-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.1-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.2-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.3-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.4-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.5-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json index abe08fbbc0..bafe8a53d1 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.7.6-legacy.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->3;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: INLINE ASM 2\n\"];\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: _ 2\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.0-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.1-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.10-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.11-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.12-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.13-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.14-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.15-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.2-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.3-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.4-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.5-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.6-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.7-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.8-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file diff --git a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json index d0a1cb33e3..5bfb159c11 100644 --- a/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json +++ b/tests/e2e/solc_parsing/test_data/expected/assembly-all.sol-0.8.9-compact.json @@ -1,5 +1,6 @@ { "C": { - "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n}\n" + "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->7;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: INLINE ASM 4\n\"];\n4->5;\n5[label=\"Node Type: NEW VARIABLE 5\n\"];\n5->6;\n6[label=\"Node Type: EXPRESSION 6\n\"];\n7[label=\"Node Type: EXPRESSION 7\n\"];\n7->1;\n}\n", + "a()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: INLINE ASM 1\n\"];\n1->2;\n2[label=\"Node Type: NEW VARIABLE 2\n\"];\n2->3;\n3[label=\"Node Type: EXPRESSION 3\n\"];\n3->4;\n4[label=\"Node Type: _ 4\n\"];\n}\n" } } \ No newline at end of file From a15ab76027f1d194fdf13c196efd1c9fda9268c6 Mon Sep 17 00:00:00 2001 From: Simone Date: Wed, 10 May 2023 18:11:20 +0200 Subject: [PATCH 76/91] Catch Exception in more places --- .../slither_compilation_unit_solc.py | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/slither/solc_parsing/slither_compilation_unit_solc.py b/slither/solc_parsing/slither_compilation_unit_solc.py index aa4f888901..f4258cd412 100644 --- a/slither/solc_parsing/slither_compilation_unit_solc.py +++ b/slither/solc_parsing/slither_compilation_unit_solc.py @@ -742,19 +742,46 @@ def _convert_to_slithir(self) -> None: self._underlying_contract_to_parser[contract].log_incorrect_parsing( f"Impossible to generate IR for {contract.name}.{func.name} ({func.source_mapping}):\n {e}" ) - except AssertionError as e: + except Exception as e: func_expressions = "\n".join([f"\t{ex}" for ex in func.expressions]) logger.error( - f"\nFailed to parse {contract.name}.{func.name} ({func.source_mapping}):\n " + f"\nFailed to generate IR for {contract.name}.{func.name}. Please open an issue https://github.com/crytic/slither/issues.\n{contract.name}.{func.name} ({func.source_mapping}):\n " f"{func_expressions}" ) raise e - - contract.convert_expression_to_slithir_ssa() + try: + contract.convert_expression_to_slithir_ssa() + except Exception as e: + logger.error( + f"\nFailed to convert IR to SSA for {contract.name} contract. Please open an issue https://github.com/crytic/slither/issues.\n " + ) + raise e for func in self._compilation_unit.functions_top_level: - func.generate_slithir_and_analyze() - func.generate_slithir_ssa({}) + try: + func.generate_slithir_and_analyze() + except AttributeError as e: + logger.error( + f"Impossible to generate IR for top level function {func.name} ({func.source_mapping}):\n {e}" + ) + except Exception as e: + func_expressions = "\n".join([f"\t{ex}" for ex in func.expressions]) + logger.error( + f"\nFailed to generate IR for top level function {func.name}. Please open an issue https://github.com/crytic/slither/issues.\n{func.name} ({func.source_mapping}):\n " + f"{func_expressions}" + ) + raise e + + try: + func.generate_slithir_ssa({}) + except Exception as e: + func_expressions = "\n".join([f"\t{ex}" for ex in func.expressions]) + logger.error( + f"\nFailed to convert IR to SSA for top level function {func.name}. Please open an issue https://github.com/crytic/slither/issues.\n{func.name} ({func.source_mapping}):\n " + f"{func_expressions}" + ) + raise e + self._compilation_unit.propagate_function_calls() for contract in self._compilation_unit.contracts: contract.fix_phi() From 07426ef7a9e4c5030c8207a88b16074f0e40eed2 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Thu, 11 May 2023 11:47:04 -0500 Subject: [PATCH 77/91] improve reentrancy events documentation --- .../detectors/reentrancy/reentrancy_events.py | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/slither/detectors/reentrancy/reentrancy_events.py b/slither/detectors/reentrancy/reentrancy_events.py index 2d29442f72..ac9c049c4c 100644 --- a/slither/detectors/reentrancy/reentrancy_events.py +++ b/slither/detectors/reentrancy/reentrancy_events.py @@ -29,24 +29,45 @@ class ReentrancyEvent(Reentrancy): # region wiki_description WIKI_DESCRIPTION = """ -Detection of the [reentrancy bug](https://github.com/trailofbits/not-so-smart-contracts/tree/master/reentrancy). -Only report reentrancies leading to out-of-order events.""" +Detects [reentrancies](https://github.com/trailofbits/not-so-smart-contracts/tree/master/reentrancy) that allow manipulation of the order or value of events.""" # endregion wiki_description # region wiki_exploit_scenario WIKI_EXPLOIT_SCENARIO = """ ```solidity - function bug(Called d){ +contract ReentrantContract { + function f() external { + if (BugReentrancyEvents(msg.sender).counter() == 1) { + BugReentrancyEvents(msg.sender).count(this); + } + } +} +contract Counter { + uint public counter; + event Counter(uint); + +} +contract BugReentrancyEvents is Counter { + function count(ReentrantContract d) external { counter += 1; d.f(); emit Counter(counter); } +} +contract NoReentrancyEvents is Counter { + function count(ReentrantContract d) external { + counter += 1; + emit Counter(counter); + d.f(); + } +} ``` -If `d.()` re-enters, the `Counter` events will be shown in an incorrect order, which might lead to issues for third parties.""" +If the external call `d.f()` re-enters `BugReentrancyEvents`, the `Counter` events will be incorrect (`Counter(2)`, `Counter(2)`) whereas `NoReentrancyEvents` will correctly emit +(`Counter(1)`, `Counter(2)`). This may cause issues for offchain components that rely on the values of events e.g. checking for the amount deposited to a bridge.""" # endregion wiki_exploit_scenario - WIKI_RECOMMENDATION = "Apply the [`check-effects-interactions` pattern](http://solidity.readthedocs.io/en/v0.4.21/security-considerations.html#re-entrancy)." + WIKI_RECOMMENDATION = "Apply the [`check-effects-interactions` pattern](https://docs.soliditylang.org/en/latest/security-considerations.html#re-entrancy)." STANDARD_JSON = False From d4b041a3992c0263f1c036c4b90386de4c1bad7a Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Thu, 11 May 2023 15:39:51 -0400 Subject: [PATCH 78/91] fix incorrect files in test error message --- scripts/ci_test_interface.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 05859eb476..42b2eea9a2 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -12,7 +12,7 @@ DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 1 failed" - cat test_1.sol + cat "crytic-export/interfaces/IWETH9.sol" echo "" cat "$DIR_TESTS/test_1.sol" exit 255 @@ -25,7 +25,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 2 failed" - cat test_2.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_2.sol" exit 255 @@ -38,7 +38,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 3 failed" - cat test_3.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_3.sol" exit 255 @@ -50,7 +50,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 4 failed" - cat test_4.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_4.sol" exit 255 @@ -62,7 +62,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 5 failed" - cat test_5.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_5.sol" exit 255 @@ -74,7 +74,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 6 failed" - cat test_6.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_6.sol" exit 255 @@ -86,7 +86,7 @@ DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") if [ "$DIFF" != "" ] then echo "slither-interface test 7 failed" - cat test_7.sol + cat "crytic-export/interfaces/IMock.sol" echo "" cat "$DIR_TESTS/test_7.sol" exit 255 From 6fbb366fe7dbfc7e503cdee11b7468564c6977ba Mon Sep 17 00:00:00 2001 From: 0xGusMcCrae <0xGusMcCrae@protonmail.com> Date: Thu, 11 May 2023 16:20:27 -0400 Subject: [PATCH 79/91] add --strip-trailing-cr to diff --- scripts/ci_test_interface.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/ci_test_interface.sh b/scripts/ci_test_interface.sh index 42b2eea9a2..de0defee32 100644 --- a/scripts/ci_test_interface.sh +++ b/scripts/ci_test_interface.sh @@ -8,7 +8,7 @@ solc-select use 0.8.19 --always-install #Test 1 - Etherscan target slither-interface WETH9 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 -DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol") +DIFF=$(diff crytic-export/interfaces/IWETH9.sol "$DIR_TESTS/test_1.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 1 failed" @@ -21,7 +21,7 @@ fi #Test 2 - Local file target slither-interface Mock tests/tools/interface/ContractMock.sol -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_2.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 2 failed" @@ -34,7 +34,7 @@ fi #Test 3 - unroll structs slither-interface Mock tests/tools/interface/ContractMock.sol --unroll-structs -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_3.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 3 failed" @@ -46,7 +46,7 @@ fi #Test 4 - exclude structs slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-structs -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_4.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 4 failed" @@ -58,7 +58,7 @@ fi #Test 5 - exclude errors slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-errors -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_5.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 5 failed" @@ -70,7 +70,7 @@ fi #Test 6 - exclude enums slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-enums -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_6.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 6 failed" @@ -82,7 +82,7 @@ fi #Test 7 - exclude events slither-interface Mock tests/tools/interface/ContractMock.sol --exclude-events -DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol") +DIFF=$(diff crytic-export/interfaces/IMock.sol "$DIR_TESTS/test_7.sol" --strip-trailing-cr) if [ "$DIFF" != "" ] then echo "slither-interface test 7 failed" From e9add943fedd10ffca70e4f75119c0d41f55799a Mon Sep 17 00:00:00 2001 From: Simone Date: Thu, 11 May 2023 23:30:51 +0200 Subject: [PATCH 80/91] Fix pop IR --- slither/slithir/convert.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/slither/slithir/convert.py b/slither/slithir/convert.py index 3cfddf5e60..8bc9b3247b 100644 --- a/slither/slithir/convert.py +++ b/slither/slithir/convert.py @@ -1363,7 +1363,14 @@ def convert_to_pop(ir: HighLevelCall, node: "Node") -> List[Operation]: # TODO the following is equivalent to length.points_to = arr # Should it be removed? ir_length.lvalue.points_to = arr - element_to_delete.set_type(ElementaryType("uint256")) + # Note bytes is an ElementaryType not ArrayType so in that case we use ir.destination.type + # while in other cases such as uint256[] (ArrayType) we use ir.destination.type.type + # in this way we will have the type always set to the corresponding ElementaryType + element_to_delete.set_type( + ir.destination.type + if isinstance(ir.destination.type, ElementaryType) + else ir.destination.type.type + ) ir_assign_element_to_delete.set_expression(ir.expression) ir_assign_element_to_delete.set_node(ir.node) ret.append(ir_assign_element_to_delete) From ac2142f3cd46770cdab2a0f3244101b041c2f6c0 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sat, 13 May 2023 15:30:22 -0500 Subject: [PATCH 81/91] include lvalue type in operations' __str__ methods --- slither/slithir/operations/assignment.py | 2 +- slither/slithir/operations/new_array.py | 5 ++++- slither/slithir/operations/new_contract.py | 3 ++- slither/slithir/operations/new_structure.py | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/slither/slithir/operations/assignment.py b/slither/slithir/operations/assignment.py index 5bedf2c856..1f29ceb7b1 100644 --- a/slither/slithir/operations/assignment.py +++ b/slither/slithir/operations/assignment.py @@ -50,5 +50,5 @@ def __str__(self) -> str: points = lvalue.points_to while isinstance(points, ReferenceVariable): points = points.points_to - return f"{lvalue} (->{points}) := {self.rvalue}({self.rvalue.type})" + return f"{lvalue}({lvalue.type}) (->{points}) := {self.rvalue}({self.rvalue.type})" return f"{lvalue}({lvalue.type}) := {self.rvalue}({self.rvalue.type})" diff --git a/slither/slithir/operations/new_array.py b/slither/slithir/operations/new_array.py index 8dad8532f7..34e8f99f7b 100644 --- a/slither/slithir/operations/new_array.py +++ b/slither/slithir/operations/new_array.py @@ -38,4 +38,7 @@ def depth(self) -> int: def __str__(self): args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.array_type}{'[]' * self.depth}({','.join(args)})" + lvalue = self.lvalue + return ( + f"{lvalue}({lvalue.type}) = new {self.array_type}{'[]' * self.depth}({','.join(args)})" + ) diff --git a/slither/slithir/operations/new_contract.py b/slither/slithir/operations/new_contract.py index 10fa91efd4..518a097cb5 100644 --- a/slither/slithir/operations/new_contract.py +++ b/slither/slithir/operations/new_contract.py @@ -104,4 +104,5 @@ def __str__(self) -> str: if self.call_salt: options += f"salt:{self.call_salt} " args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.contract_name}({','.join(args)}) {options}" + lvalue = self.lvalue + return f"{lvalue}({lvalue.type}) = new {self.contract_name}({','.join(args)}) {options}" diff --git a/slither/slithir/operations/new_structure.py b/slither/slithir/operations/new_structure.py index f24b3bccd9..c50cd6a3e0 100644 --- a/slither/slithir/operations/new_structure.py +++ b/slither/slithir/operations/new_structure.py @@ -39,4 +39,5 @@ def structure_name(self): def __str__(self): args = [str(a) for a in self.arguments] - return f"{self.lvalue} = new {self.structure_name}({','.join(args)})" + lvalue = self.lvalue + return f"{lvalue}({lvalue.type}) = new {self.structure_name}({','.join(args)})" From 58e01ea218627719e3e2bd60df4abd5bd7ce6fee Mon Sep 17 00:00:00 2001 From: Simone Date: Sun, 14 May 2023 10:52:07 +0200 Subject: [PATCH 82/91] Don't report variable in loop header --- .../uninitialized_local_variables.py | 10 +++++++++- .../0.4.25/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.4.25.zip | Bin 1807 -> 2247 bytes .../0.5.16/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.5.16.zip | Bin 1802 -> 2237 bytes .../0.6.11/uninitialized_local_variable.sol | 6 ++++++ ...ninitialized_local_variable.sol-0.6.11.zip | Bin 1824 -> 2269 bytes .../0.7.6/uninitialized_local_variable.sol | 6 ++++++ ...uninitialized_local_variable.sol-0.7.6.zip | Bin 1762 -> 2202 bytes 9 files changed, 33 insertions(+), 1 deletion(-) diff --git a/slither/detectors/variables/uninitialized_local_variables.py b/slither/detectors/variables/uninitialized_local_variables.py index 759691d504..3f7eee4d6d 100644 --- a/slither/detectors/variables/uninitialized_local_variables.py +++ b/slither/detectors/variables/uninitialized_local_variables.py @@ -6,7 +6,7 @@ """ from typing import List -from slither.core.cfg.node import Node +from slither.core.cfg.node import Node, NodeType from slither.core.declarations.function_contract import FunctionContract from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification from slither.utils.output import Output @@ -64,6 +64,14 @@ def _detect_uninitialized( self.visited_all_paths[node] = list(set(self.visited_all_paths[node] + fathers_context)) + # Remove a local variable declared in a for loop header + if ( + node.type == NodeType.VARIABLE + and len(node.sons) == 1 # Should always be true for a node that has a STARTLOOP son + and node.sons[0].type == NodeType.STARTLOOP + ): + fathers_context.remove(node.variable_declaration) + if self.key in node.context: fathers_context += node.context[self.key] diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol index d28eef9578..82a3ab1246 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol @@ -6,4 +6,10 @@ contract Uninitialized{ return uint_not_init + uint_init; } + function noreportfor() public { + for(uint i; i < 6; i++) { + uint a = i; + } + } + } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip index 60ae4138c0cbb53a9d2b212e0929f5778c39e3ab..2c4ccdf1739484c8c89730b7f54efaf23f024e87 100644 GIT binary patch delta 2091 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 delta 1647 zcmV-#29Wu^5sD5QP)h>@KL7#%4gfoicUIs~n?XPZ000>s001|}t(aS6;oO)2cgKrt@CvFD zq-twoh9To$3D5TK9zaTg)Ydm2R^s1<$U`osaho%pasXN4*8boCo^6ObNyeP1jvhm$^}F=__{;0hp-BOL@WJy!?8)3?Lw!|DR~#NnYCT1ybeR7Pe-c z>b_^!Q*eqK_VeycrZ!*J?SSq2o1(_aHpc6yO1vt&ZX@`?X52L&m}h?uUDkL$<=B#2 z%6l~VP8r$1?cnQZGW=0q%2Mn*9!53Uyh8tjbrS1NW(gOng!Rfcvv+FgZ*5S~@J@$> zK-W^m1WQD+5hRE41r)HopU-VmjTS|1@y0@!f0BF3QbZ@D9dSWx>)^>Ub2wenLG+Z5 zqXyR(Jw5=JDGunxxXOPzZRzAJsY>eQ+E-)g8o7v zm~QTXv{D%ua*2P|z;2sp`+$%S>82Q9BwJ9xVcOE8O~U0oEM{Vw&`T49Q1SWEcd(i6 zK~)4gik6_c7CO9)!*)KyG~rRGq*4{L0B(}1Sj)=-vu$)*pO_!oanXvG7jH))IGd1b$bL$C;S z9u&GbOUbdIYk*i(xZa_ja4JSjPw+MB;rIEo@QT?7N153c%dN#%S%bJION-@;i%Gp+ z|DWE4aj5U*DAa1a<+ns#yFq$rw37~Sb34psT1wkxiMeO9et%iVPfP@w7TTAU@X*?z zbmXJk&2@h;>dy|fY&uUaEZ}OZ;sJjJ3(nte4Chx7zU_6JkVrHRUw-($f0VUZ!e3eD zzz!ft<;6emNU~K+F{T@MjggV9QUa>Qujdf~^pbOcK_nI0JZ)&)Whn_$D_3}>PL^#D zo_yN>4CEA5W#JCVAc$+?FU$Y>S@Yw}pE(>sCJujhncj;Z)k?BwXkIM|Vo2 zwjCVOoXs)LcM3RaSs(*RYNi^04Zq48nlv{(t{YesnMNDvE_TZN1qjd{g#+6=sEPWy z_$!I|qtE|nBfFi%s8@{m*4#apI_|sqTXox{#^>` zk-dM{sKlB+YF~oe@VFK(ZqGWT(%*WOu_tP*FJe$%cclZ#Js8HB@2^2c;z|O-%5DP9 zDr%xU@(V>5IR@kE9hfeBV^8fWFG$vs+*l_5MMtVu&RUGHSDr3t{VG1VkILDPCyM^v zk>{nAm?8)sLuI1dh8Ssh-z(uo&zEcsPuG94EllWaNqf`5)EfArt8L5kzK`VgevFvD z-MokSJIiGWKT!i)kYQwyu9(E<80agSiomqCH(}Fxb>lC86(4(G!mv0c^qc_V6mp3w z>?ZDaX9Xwjm9I6!_N`!w)LkptBVbEDVtN}xF(}AWiKiP7z5TB3@ym?^MqHsDT*ZHC z;8@pnM@$BjB&}dmM|x7UYIIF~7I$GSAp(p!2NEI0UR(M#)X-F>%ZK+IatP2Bm648V z&;dR#mcK|KbDUie$|;PaO+L^DoBVP-*y)<;0WM3l`@SZz{;B9abh^k zFNLiwe&-Kh?WW{8``@Q!GUK_09&0=jCivHLjhK{?*APyJ8EzsVUEM17bHFzrQ@R#r t{{Xz-08mQ-0zU&k00ICG06UF$R^U*ZK|lro02v*VUkF$Rk_G?(003J`BAEaH diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol index d28eef9578..82a3ab1246 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol @@ -6,4 +6,10 @@ contract Uninitialized{ return uint_not_init + uint_init; } + function noreportfor() public { + for(uint i; i < 6; i++) { + uint a = i; + } + } + } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip index ca7ea0eb308fe7b52d4395dd5171d8bdbf5d44f2..793b30f4a11dff2246e75b96719158fa033a2831 100644 GIT binary patch delta 2111 zcmV-F2*CHC4&4zLP)h>@KL7#%4gl0uu2#Z)dpQ#b000m#kr-ru^+P_6+Z$mK{=)<4#k(GbXB?s{~H=a zs3iZSL1y6a%c)g=c8>~Gzo559b-?F@wye`NK)+y_mW4~=J%l}F&*_)3Aiw|>(5`1O z>!tfUafTv3v9)MXA`_1eomcR~x^ex9+GuQ`S4J!hJWpLKtoZY11OZt@C8JkKt=}rt1T|(#7>cexL%|Uy^f67DBq$gXC|`jX6SjEm1Kc>WxSt-p z!`n$>=wz|gH+_BJHCBPqpTP4eTN7~FsRG&>M!B|m5CVFu!#IK=J&=mhmfVhPHa>L^ z7s|$sUY;#~wQ9-Y`Tw3f848LG$8Htk!58_pFQ#=4aDiBG$G&X10UsrdpyyX-(%9&z zEZX8dTw`E#am@S0~bIX1#v;Sg|yN6FRV63p;Hpb&rhZF zTD7Dk7T7Ex$v!MUVqKSn_S+W;!yC22^i2?M+sRRHiNnWFG1>j}-Opa(o^v0e=?Y2`@Cvdz) zgB?~SKU;s6qwf==z{3es_*;-CHP}oXKBtGyQ2=fy884l-vK{Q`3~fLvbL$4 zO{^5`VwD-Ad;uM@gF78DMZ_V=X8weQLFSXfu@J5B^7ufhr>L%up2y04WRsJ8sDkqtiHY`TS1QYPs{Og zz`Kr|?iBQMGwt6G)*SOfQB$IP!eu&oEF@S=;uq(^qNTVla^VXozgX)5FKeJQhUBO} zmpz_xeM$#Fr^R}vkz6yqjNgNQ*>@}($(;cU>rpg~m1tCV<30lJzi>nB%&3zZ_aLmY zmKkg;1=U|}$}n<3TvVr=iZDji_lqi&@W}ZUsRZ6Zk7D%w&nL}%Wjp#>ZKKSK7QrJA z{0J_92G7^Y*u{&x%)ml;45s0j+hlMOIkTq4mcuIQ3((rh|0WUhhrQ>2`{({q0Pc9G zdeTJlv>#MhQ(HmDKxuE=ubwDECx`NYGZYc$5>^nuMCd<=?_dL?k&z^U%$+M+NDdP% zRpF>y!;_7M!ZoM)tkiFMhy6waLGRn~o2c*mo)#bO?8VA3b`IszvliojfDnIIy3!5gG3pP6ngTmNq*dt?vYRAOFS&CzRbox;$<9f2n;VWze4R|-F^ATAL!!? zcOJ8_TIsB5Gum@4=fN+3&4{DF^r>N#M6}V|0Sm#pAuHI3CI!%V(ktJ+DJ|Ii#&#^vC{txH zyaRX}=zuzTBN)K&SA*_kGhVm|Qg2xy<;wpU(9Pt(vKG{i=x+a!yv18~l!Ls_GMcrM z-hZ0u`F9H6a2dsp)@bsXhq}v*?IQnC2Z-0Naa#bC(Zof6JgL02Rnth8FH=P5T$cM4 z*N6XqUZtc6!r%1_&~?8-H8CmpMAg>M#J;1YoYOC6LBtU+n|fc!Z@j~uMS^;b@3bk pP)h*FLHITHu~01z*e!Uk9dWe5NO0009K1f>7~ delta 1669 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 ZRs(_>BhUu`0F^A0ga%j!A_xEg003c@_^1E? delta 1607 zcmV-N2Dtf}5#kLSP)h>@KL7#%4gfoicUE;nYX2Ap002T9001|}t(aS6;oO)2cgKrt@CvFD zq-twonro_@{&p*CwbB5MY;H;&9AR62-ZWz<@VE4AZ4Qa(U0<$njRn~ymyLt`Xc7Yr zPW;C;9N^_wQV658`?crE5J&a2g{MGF(MSyx_#E^>kW!?o1Q6FJyPm z1ZMR&cXfcTHweG@NUjJ2%n)`xOWk|IzI5u{Tw9D~q22nnKNm9|r>K8&egVk>2h;JI zT2npyo2Ro6mNX&c2+u*bcw2HdQ8*Gnc8rTxPW_eD+U=R%<-2-V?P_(GL(*ZiU5b@4 zEKfrm01iBZ1k}ckgyH)E))5Fjf3^i1Xb> zGXd7wA=Mf~r>fchP|&Nie_Oxw*6f}Z!PwG|R=QQLE9AW1YGWd(g*pr}!&))ti{$^2 zNVy{4J)sTsn%``g+bO$mlb2QibhQLJtY4Pokoor5^_zMQg(H8kM|M}m+^hc_!pxT> zs2R62g)o|hlJ72*sYp?jCpZm`eapu-o+YR7X4;BvQZ6p%JkB7@OIccF!2Q(dAu5jt z#(XDCsqAmuvcbt!8)m%UF)W3R*TQ~eGp#%PInmo?Emw^;q z6t1IH@OQHQ(bK!r8iv=hwVOn`xlWE_V+Z4M)UHEaVdhxRMJCQnMwNsx*9 zw1`WgZ6bfGoBoJpVOBe85ymLKcYYlhzW@UjyR1^-xx%myN*BQ}k~ce3^S9!+B+$yq zH>RUV+MM5VxrBk46l0*)$85C|8u*?FkvO-wBM%vD92uxyuj288k1ofGQ9s#)AYzW! z!T5h-y;74pRnmBp5MN}CX9t2L9j+2Av36@{m4{DkT28j|e}U@R=ERYL{F=ShmxM=> z?ERla+q06O0Po|^-jXFfX(1+A3cgq+8%s8h`E$w`uu}L2(8=at?JGhJ96P{geOTI2 z1P16WkR6sq>smlds2Tz8(lY=1Pr7;IBzu2fe}w24sKLD#@QQq{AVt}o{}H=KZt+9 z+?xVqzK?Ny3vtzTOafoqzCXGI+t**{GDVvmO$07sT-@l;Qv=AdEk@oNbFHhkTrepe z`NCLkxeJrafMpvdBW?lvE50B}1-l^%Nm&p`Ep%&DVa|q(*RM_|u##Crc}ZQv6@)9c zFoVs2zDZa{F^U!c-CK~-P)h* Date: Sun, 14 May 2023 11:08:30 +0200 Subject: [PATCH 83/91] Fix crash when variable is initialized --- .../uninitialized_local_variables.py | 3 ++- .../0.4.25/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.4.25.zip | Bin 2247 -> 2483 bytes .../0.5.16/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.5.16.zip | Bin 2237 -> 2469 bytes .../0.6.11/uninitialized_local_variable.sol | 5 +++++ ...ninitialized_local_variable.sol-0.6.11.zip | Bin 2269 -> 2498 bytes .../0.7.6/uninitialized_local_variable.sol | 5 +++++ ...uninitialized_local_variable.sol-0.7.6.zip | Bin 2202 -> 2427 bytes 9 files changed, 22 insertions(+), 1 deletion(-) diff --git a/slither/detectors/variables/uninitialized_local_variables.py b/slither/detectors/variables/uninitialized_local_variables.py index 3f7eee4d6d..0aa5579f88 100644 --- a/slither/detectors/variables/uninitialized_local_variables.py +++ b/slither/detectors/variables/uninitialized_local_variables.py @@ -70,7 +70,8 @@ def _detect_uninitialized( and len(node.sons) == 1 # Should always be true for a node that has a STARTLOOP son and node.sons[0].type == NodeType.STARTLOOP ): - fathers_context.remove(node.variable_declaration) + if node.variable_declaration in fathers_context: + fathers_context.remove(node.variable_declaration) if self.key in node.context: fathers_context += node.context[self.key] diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol index 82a3ab1246..37d4650e23 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol @@ -10,6 +10,11 @@ contract Uninitialized{ for(uint i; i < 6; i++) { uint a = i; } + + for(uint j = 0; j < 6; j++) { + uint b = j; + } + } } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.4.25/uninitialized_local_variable.sol-0.4.25.zip index 2c4ccdf1739484c8c89730b7f54efaf23f024e87..29db479d573ecfe96ea1e2af6bbf53df42de1cd5 100644 GIT binary patch delta 2146 zcmV-o2%Y!G5wjB*P)h>@KL7#%4gkqmu2#8J70T%d007B7u^1Quf276Z^!?MWMToTd z`CamzD)0N)uJH+6f~Bd=@*~O)JXVVH43_{Y}$2 zR)k+p*2QsET`iiPTw7b_em3h+#W&ueAn+${ew$Yq3zne(5qOIB@{FNE;s~q~F9JvU zxtIb9nYhSg`+{Y;jGz8O&TX|$WNe-sv(#cJe+O|-V^fAXeZa!J083%85taxTjgvoWUk*d%FzlO=m>-% zEzuzw2U;4hgX(7&LhBzCAaUFwyw^@W;Ql2GxqJyF9O_x4B*C8h^%%+mQg@9|1F2SG z#E&D&BRxa_tNn9V!Ns#q&)RFP@v5)eLhz3CrA8+(e<}7zI_%EDK42bIAJf=PC&pnt z;=$g&0l8!J^C@Vsqao>#^*H?%%xy$`=gen(tK5e!%Q&C=%91@QAG$d7TC8!+@M znRVq}B?SiH9OB>r0hmY)=0k!LR==rr%hD(@FCh`K^=y=VtwTNG{d%`w0)|LXa$ zj#@zzePCImf84VJD~mM4sI^!tbDhHE~M$D0<4-;&k?-uq)>f+=!>KE-u|Aicf(^HBz_f69Te_M~PXapO7)G0FB>S`-T3U|D<& z_hl_$r0wm3xKYD}VLB8E<`cf7V-XzR5noUBpoKU@=0jqbUFNqQ@k?Nk3h6oX7LyON zib#-nQR0FO#P<%!jd2+C#!8^e8hL?6mgj4RKV){+f;KLx`}`pHB}2|Z z%MP1^#n4aE6J>|He?|`gsULI?bb~@xHFB+ME`6p9$TQGozQ;@uf!$;cKxYG(+IgJy zPgYs}+%Bb>m~<|s+yyw+99W};_)U*ge^BrMfg~*|$tbuzB;hGl6B%c>mum}HDmTeJ zC)N$P{iITKYeWhJl;NeX?8MDJs-PWX`r%^Bux)V$wqTx`QBCzySS-uB$Uj_f3z;XE zL;*1C6*3wLFhoI}3>eB*YdwI8w$!EPNi{1B=hLp;%px+`x<~8JUU)=gX!(*gf1lmX zB)f`4kc*#EReKdRWqWN`GI~S#GNQ{sB*%FIR?0Ms;@J3q8ng%0tQ=rXjPe-rdyWk8 zy!xeISh&5kaRV%UdVfpJ7-=N)bJtJX9~^5di$g8x@nrDeD}4XE6)*X0fR_CtVY@=J zzb<6#n38omvZNfr3;DiXDs;O;e+xJTDjQ2KdWI`X9g;!KE0=Sp1ASYL$E>QqP3WOw zAq40LxN{BW(Jxk!QTeZ%3)Ht#v{@oVlbJiM@C7^eK4iULF$I!;lRgt6^L(wSkJ)9q z%dcm!j+1*)3=*+-kc4eaww{ANiTbE7^S-eEa619cbTKSY3zv%bg>r6rf92HmQZr(| zMq_EcDB*oV{s2oGS$ciCc+P`{h%~_^s}r1CSdgIwQ!#>bnP1Wh2S5^2$3HTS*+Es7 z`6(weUuyMt-j7y_F&llkLTKcwh>^xV7f3OvG)+U_5g<=GB0VfuOQzObvmfpTiNl%c zc2juB&4+wqDazqw?cXFie^bo?kSRKXK1(Fti01*0AUtFdg#$kZU7{#jI_{$NK=d$6 z>?%E|;2+dNyiFfzjjg7>Ms5y?jY@6PR{#jr(ICnU9w;2;w_K|8U?@_@$HAGK<)U=|5X*^`c7xWDEmOM!e`z}lsh)cpmy2PE zdpcE^e=QPkl`iZq3uMTSll4)R7szK%4dpa*HA&q+hWqj1>9<=9Wc=1I(-a>?RNfnk zlZn(|q%-#PcTRWqoae2MHDZ7gp1)z7us{!S%Yf9E7ru6FrC9r+Q(DvFI_+yV;NZ1?DaQ+m|%^j7KlI3F%@XIH9R&Z@_A!rVOwK>e@%2|&h@2@{kJoAi@H77aYij;$UWL5GZ?yu%ia>ZbSG z^)%RZN^Oj(H3<6^cFPpUc9mZAUZPnD&C`7E`)v9D`;@?aP)h*<{901I0R#{d8T delta 1908 zcmV-)2aEW#6UPx4P)h>@KL7#%4gk|tu2$N-BO3h&0015@u^1Quf2-z?+G__*1+Cx_ zT;0Bomc?G|P)g3astk%p>=GF*j}^120N$9Pd|+hstb=K!fEPoAlM3PJ=~qPm>b3P% z4k%VlDFBA6BYoqH?*8n@>i|)}^MjmY>m1QB-v&A-IWk;TyFoiaI$C0}G|-zA-h(5= zot7Zkx z^8)r~#w4!{Y}(jobA>0n_L(8MxP;LeP4R3#7Q+>D`w4BNe|mKo%qLpV`e6_fGrDFk zvYmuwMyZIu-LdcKpMM_OYU5Ix@@4+vSEVznRG9OuLI@GGeKtY#B1CA~+~m$Q zYNxR|x?lc@f7T>~%LVusjJlC1S+37-9azzdVr_evu@}P`T36*GMnWG*i5K3)>}EBC zFe;L*7(w4&6(|C20|zjP zDGWYAzeFY_3k!_;sLYs+*fUnjeF{co|3DIQQdk603m!4uekNWMH+^-TWQh#&aBd;3 zR%vW=Mla=BKDcM`PT!>6ZSL^iEn!iSuFW3OJ-2d@P>KbVRgtPSa!di{S8Qy#yyaFd zd&lo4e?ts*_y+T%If;WA??jh2#ywgtngL|Y41|=m>vc8K3aIL|Iw-?FW4GeUkbk)ybB#> z*ZEeQVkkNm4gw(J6`{Av4KYy~9|NP-`2i9lf3+Q?AU?eeje;spY0}KgScyFyJ7)f0TFn9hXkKR{$Kndq^o1mg%pSqf})re-Dku*DCp~`bN2iZ6*o6Aq?SH`0P=Cwl6&f zA-+7+5{{1bA1kcpq_)pg`z(8uec4CEWK;t4f%kW0TCxhS_v*)8KiySDA9OTMidvOq zea#=8Z(!4km9k;#Jy+#7!wcmoAzP(z%0AxmY_TI6q=JR@qGUCMBVhxVvSByVe=6c# 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 delta 1898 zcmV-w2bK7x6TJ}_P)h>@KL7#%4gl0uu2zIVHe2%t001&Bu^1Quf2-zh1=CKTW7;6u zg11fe_kIhY|IWYsm}AM-KNJ!yAVoNJd_Ow zTuTH$>7J<=9&Y9Oe-P3lWYFI-t}@UhVUFgdwK;%cuGaakK0OyQr~{mQW^&T}#cvna zG1x3QFOkOVhJ;t;X^^>P@F(F~5=S@4IF=*^w=z6p&NWmad;9DsZF>8*G(GT`y$XN0 zREJ*N%Tn~hG|;-tt^OR!+#Ct%$i4NKu=4Z@4Ou3m=O9b-f5d%)wizl667_U3jNUKJ z6I)4ds2sYn_zS@l<{HxTUJSA*l=j{^?1t(wmmGb?<({r8Z>bl(%c?Pr)Fs;Iq%DKx zm=(|Y4}G2A7Xw@fwZtc}T1bVh`@Y_#C)4>xo%3D8H$NqQ@IXRoNIaskc>@2S>UvqY^-90e$#| zKC<1MzC5tU!^XZJr|5aC{o9VsG1~;i2SL>>R)G+f7)BGzB09LMIrPsHP;XtqQbsOOo)EXf*R`>44N&2n#(n2WIxx~Qt}PlXdhAF zVv3d^=m7dS=Z>^!ApCg%AV5(&dst!<#?Eg;+=dL>dDO$({ie(*W*Skf5s~8}`KkAY zbv^5_Q#g2?)%NfRSJDv2J{^OaF)Wg@*spIDf4=Xyt@X7Eg}Aei0bI=>Iq|@o{Y>!2 zxB?al^hBc%x1`XGU0zAis#qqR4?2KTI+`oTNc!Qb#4rW(lXWCr>M`jW60sdF1zKK8 zCktAtIk&sT4s-MG7|K#9_Cm0WJTz!WCNUFtTk@)R(aak13{LoziFVpOM6u-ZD}f042u)1xSdM#TTbhk?tQHGUjEbxt&iI0+Od z|Dnop(si9&iDG4g_)mk4*1{hJOXw zVl;3Kn8GN}+oRaZlr3 ze40D=)9xS|S3Qf^qc32}N|*|dTC3~c{=&-??g>#`CX%>g56KiIJYv)Bkda|%R@Nx= zs$j0Z2)1DoS(_eJv|-4`eE=4bP-hfuR2bkI`|eW($T}G|w{ma{zK=VN#u-pS(zPhs zMp4v#oMh=Z(Vz7C%|hnbn$Q>!%ML z(+*%U?VFTF5=@4S=O?TLC@J3R2lq%-f}bux9RN;qL=K4BWpJ%HA~`v5v{-Hp9Rj7z z8c1_&i-g3g@`RpUJ#kTB6Ke}Cq$p2m-jRx{-L&NwZ1@9%ZZ$I#9X2ojhBB;hP)h*< kKLbAi0ssyG)K#ulgg`c1^9KL`GA@%x30MY22mk;80NO;2n*aa+ diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol index 82a3ab1246..37d4650e23 100644 --- a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol +++ b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol @@ -10,6 +10,11 @@ contract Uninitialized{ for(uint i; i < 6; i++) { uint a = i; } + + for(uint j = 0; j < 6; j++) { + uint b = j; + } + } } diff --git a/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip b/tests/e2e/detectors/test_data/uninitialized-local/0.6.11/uninitialized_local_variable.sol-0.6.11.zip index 793b30f4a11dff2246e75b96719158fa033a2831..d1ac3a5ab82f558461f3ccb8da893ed552b049f1 100644 GIT binary patch delta 2167 zcmV--2#ELH5yBH2P)h>@KL7#%4gkqmu2wz3swwyg000?2001?HKJ|zj z_4N>dj5XS>u1yYC)2j6Nd~uh}MlOZYi{pJ`K-5?+zX=F1tg1Fg4^|%Qu~OOY91w{p zACnI`NQs43^UhppSV*P~QCS=H(qhU4r`bsJtrxcS&+6{l}koC{{nAP(n7*sy@wp;D%0Un(Vq_aHCJ)S&&6g zTl~nh8m9k5d94ljUmrs}{$?YOfKb(MQ9-Wh*OBi0>3F-WZB;vWrn7_iw& zhW|y2z|qeXlK3zn$~1q#h;O8RP9i#r;BtszU>6_d6K!I5BgWpGQh7DPWWzuyXKTwe zQH`2w;DMhb<1E7g(AlAD)G^3JxTC!O+59RG^S!8L@JoFoUaIvXh@C}>`VDfKnbAg= zzU;ZloL_1$d=K~$arEn+yr}f+1YL|=(VnG&b&^dSFp^PN7s!9vRZiS|<||w}=cafV ztR33Sx~F(w712mL*(c*T56tK^)gdvX^J-FLOFPC9EnJ=jdE(=Q4Y!RE5H$Vl+@OlA z-@!bp8MjW5%l_mVApG-v^Kj@P7S-oHbMH85!JnNC5GujrVa~w-Xj;L)YFA7z4}YeB zf!CRU!ADGAm;!$|@6}8_41+7WV6*?$@S46XOdw<>TBHD%ucgN+=yMfT!d;kW4xljc z$BL}WChwMsgAg;+7r=2xDR&m>iZ%@QSk^@$4#R&Gzxfve{#;FU%3Y718($@v zOX$k`0nFJu1AOjNF;i?W$Ip|y6by~ksU$DX^0A}Gck(AML1ElPCr7}}S zB4JszpKG8%AWc|Y3Xvzpt{h$iJL-8{xo`J-!n{M3CANDp#5DY$@od(zGrs`@%W6BZ zZvaC6gU%L!F!Wug|(<0dI0+nH;=AgxZ~uS;rFHBEQdO zOqFVO@^0?4X{<=}N<{q5kRE1K_KKX$(^2;Z@=N3i#3?-X+KarU9Sk7K$f4Dq!7gRj z&PIO}a%Z2e)$Px1G<4>Xy+vPI<|y-IZw;%|fM>EIxohzZ|N5qL+(^SB9$w4-k6Y%e znqu7bn`-KDS(kJZ4p$iIBQr(>&VBsfwwA@w!gAc*tu=mGbe9@D^{&c&A_^g1RDi8D z*XsrK(SMWcKYAC}rBy0#RQ6?8Y^cGzwtasZ4gQ9pOhctk8)Dy>2CD9#L|OyuG;TrH zSWt&?JwSR=Ur^&!>}>X2Kwcxt|D3WNSkrz2wH`J9Ro}w1=g|_)yvXN5zK7^{`7P!t ztmQMoj6`0hv;XpRT#!Xusn|UHK4Ue>Kyb5>(I~OHs5mV8T}^`W zb~f$>aAbMXS~Dvu%^q3CdYs31b5|NpFc7K`DB_poq>(EpQtJKE&2H% zBC8OKz*W>y>v*22mqnbHF9#VR|5fT>$uU2v9GF|87q*+A>x6nD=8Rgqd#it&f7_0^ z!o&VZr_p5gW({P7Fzc3Fv%MV8*yPR4BLaXD)PmI*KaYPgM-KgN5~#D5g;9ZD(&sPv6jkJ#&Vq#y<8*~I9K$$7 zDDzc}6nl1oeky!hj|b%rIQ_7pYq5Y85bDQ}A!vn9RYSgI3Ep1`#9D-vchBx;2)uSu zXZnvgp4TFC+RPT9N~h`#DCdNUboSN!;~4O#emowV1W?z$+?`oUsd;~ESZC#GL?w!? zN(W)zAxNlqR5q_g<`8DJH@t4Ozx+_|>5;Z!Dk%YKOTob$Az`yq(m5xKiK)*1Z>Oh@ z8{Yk?ZWDj0nQ{RaHURMfwml4%e{aj%W5&42DzElP56v-=ylLIP&6BYeH4`U+6*%M% zuUS|_a+yz|>4xy>7Jx)9Kd&`^DHOs)TF3)(w5=$}^+<+M{daY#cMH7*q`-ze6eH@} t|K_FF-cU;c0zU&k00ICG0LfUcRz1L~DfkEg02w}$e+XCxN(le}001OdGVcHY delta 1930 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 cu2!`Wvn8<{903cxwt^fc4 delta 1870 zcmV-U2eJ735}FYkP)h>@KL7#%4gl0uu2utr8Y9pL005ON001fa+pw88kBrioKDm|ND1P^ZKk>zNEM8=Aq#whCe5D}#aIDPo27VRsA9v4$8~9z+ym zEtjE1U%meuzYQVm83B258dReSp+BPjgaW_#?c`Vc!EKrDJQ11E%iaQokjAWh=8$M~ zPC2YUQlXG2*VcFI>1t?hNdSL`MQaa%KQ>N4^FSW z^dh=VONON|udd5<9J;tETtiH+mO2I!{BFb$ger~9lM>Nb=DUGIxpUauqfKF;$hD8YI1i%uJaH-BllR$S?vH;U z9f~jTW6kr9qCYSo-m6$|xpU)g$37lnrd1G@Ue+rX_;wnQ#L%mu8MpA; z(v%cJgA{HQiEKR9na6*rt_;#2N2p*9?TdcH{}-`8z^T{~G~GNYG0jDd+Tb-^YYvmA zZrm&!X&7(Y4CFv}8HL4hxn7>;)0rgl(#7V+S+N4!fRe%!S}c^R;re{5MsVmeVeCh1 zTw9TxHqA@rt_~M+XJ=Sl>dqr7>!`bH-yZoLewCZZSn3ZkDBagD495ksp+~`g- z6*(%Ial%$>4WP5)flGK7T_gU-0g`yi&d74$MqM1zhjIZU18!R+98^PE9u{m2(6oX^ zK^~0}av=26`Hg=W2-r5eymN6Y7`{pzeK}my99QipFp^*`f2Yqcu_jDy_8f29)%ftu zZ28#tg3)GtPYDY?%d~3)>Q(;vJ z-x{|$890DUi2xYP$7TF2+*73jb*CaKhHbmVNAzsfV=DasDlSZA(8 zuKtl<{z`YgN%QG1kd!bvl`8iR3f||o`f6h`U7>$VtoikWfxxEA!*9L#A}*VG(eV|; zI;gwIRsvqrd35~C$~V&hwV9ekBFx2y3}5ek)Q7TY!r}k%4DkMuuJ9eNU-q=UZVSGk z$}cW|u)2;$SvtUn&pYWhgKrzUE~=*V6NSbMI9j5%L=ve-m9d21(M>yDxTt;)!cW{W zrgncix>{YgeJJ7zkK!n7+iO<{K$Aley|RCDm$)guiGi5slaQ9%;M_5Wzw^05hl3h1>Tbh;99B;g%X5`?B##D z=rT>z&-^I$22?c8jj*m#pct5lRUm8$Oxueo^yS2c=rhXikfm5Y=>uj?*kKkP0#MWz z`v_|!J=9UVKJ&wJ6OZQC(u@-)kcgd5;xcrx7V_@KMK5S#_>eB6qFjl-ST>;{Rt7ve_Kla2Vg4f=}C5}z}?(fy6Tg;jrFg$QEp zem^O9)p^0;ZVAe_-mR)es^xmXnH`<$SzHoXH&`+gN%B$CtnXnf${6(^xv8$PVgx*@*SULydj(h}mT*Y?P@(k^@V;48oqr&5NK$E{=3CfAh0@1mEXI@f zLK+K0smP}Q^WBt>fU3X#Oo1DRP)h* Date: Sun, 14 May 2023 13:38:17 +0200 Subject: [PATCH 84/91] FIx return variables shadowing compact AST --- slither/solc_parsing/declarations/function.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slither/solc_parsing/declarations/function.py b/slither/solc_parsing/declarations/function.py index def68a8a30..5a29a9b50e 100644 --- a/slither/solc_parsing/declarations/function.py +++ b/slither/solc_parsing/declarations/function.py @@ -774,6 +774,7 @@ def _parse_variable_definition(self, statement: Dict, node: NodeSolc) -> NodeSol "nodeType": "Identifier", "src": v["src"], "name": v["name"], + "referencedDeclaration": v["id"], "typeDescriptions": {"typeString": v["typeDescriptions"]["typeString"]}, } var_identifiers.append(identifier) From 9e4324bab1eb56ebb986a14093994b4bef083a11 Mon Sep 17 00:00:00 2001 From: DarrenChangJR Date: Mon, 15 May 2023 14:54:23 +0800 Subject: [PATCH 85/91] Fix issue #1849: type_str not returning str --- slither/slithir/operations/unary.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/slithir/operations/unary.py b/slither/slithir/operations/unary.py index a6529d7268..c6493921dc 100644 --- a/slither/slithir/operations/unary.py +++ b/slither/slithir/operations/unary.py @@ -58,7 +58,7 @@ def type(self) -> UnaryOperationType: @property def type_str(self): - return self._type.value + return str(self._type) def __str__(self): return f"{self.lvalue} = {self.type_str} {self.rvalue} " From e7701f1a1782f5593e60a98cc1d9528ab5451af7 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Mon, 15 May 2023 08:51:42 -0500 Subject: [PATCH 86/91] make transitive dependencies explicit --- setup.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/setup.py b/setup.py index 39ee2b1e02..5c220eaf7f 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,9 @@ # "crytic-compile>=0.3.1,<0.4.0", "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", "web3>=6.0.0", + "eth-abi>=4.0.0", + "eth-typing>=3.0.0", + "eth-utils>=2.1.0", ], extras_require={ "lint": [ From 19014e15c28a8945ab7c549b971f323e54d459de Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Tue, 16 May 2023 11:18:44 +0200 Subject: [PATCH 87/91] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5616bdeec4..70d4f71fd4 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ "prettytable>=3.3.0", "pycryptodome>=3.4.6", # "crytic-compile>=0.3.1,<0.4.0", - "crytic-compile@git+https://github.com/crytic/crytic-compile.git@windows-rel-path#egg=crytic-compile", + "crytic-compile@git+https://github.com/crytic/crytic-compile.git@dev#egg=crytic-compile", "web3>=6.0.0", "eth-abi>=4.0.0", "eth-typing>=3.0.0", From 649e8d5e9426ef6b67dcadab4ce6be6689d16b70 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Fri, 19 May 2023 14:43:55 +0200 Subject: [PATCH 88/91] Minor python improvements --- .../statements/incorrect_using_for.py | 305 +++++++++--------- ..._8_17_IncorrectUsingForTopLevel_sol__0.txt | 24 +- 2 files changed, 173 insertions(+), 156 deletions(-) diff --git a/slither/detectors/statements/incorrect_using_for.py b/slither/detectors/statements/incorrect_using_for.py index 4df0701a2e..e2e87e7e0d 100644 --- a/slither/detectors/statements/incorrect_using_for.py +++ b/slither/detectors/statements/incorrect_using_for.py @@ -1,3 +1,5 @@ +from typing import List + from slither.core.declarations import Contract, Structure, Enum from slither.core.declarations.using_for_top_level import UsingForTopLevel from slither.core.solidity_types import ( @@ -9,7 +11,148 @@ ArrayType, ) from slither.core.solidity_types.elementary_type import Uint, Int, Byte -from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification +from slither.detectors.abstract_detector import ( + AbstractDetector, + DetectorClassification, + DETECTOR_INFO, +) +from slither.utils.output import Output + + +def _is_correctly_used(type_: Type, library: Contract) -> bool: + """ + Checks if a `using library for type_` statement is used correctly (that is, does library contain any function + with type_ as the first argument). + """ + for f in library.functions: + if len(f.parameters) == 0: + continue + if f.parameters[0].type and not _implicitly_convertible_to(type_, f.parameters[0].type): + continue + return True + return False + + +def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): + if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): + return type1.type == type2.type + return False + + if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): + if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): + return _implicitly_convertible_to_for_contracts(type1.type, type2.type) + + if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): + return type1.type.canonical_name == type2.type.canonical_name + + if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): + return _implicitly_convertible_to_for_elementary_types(type1, type2) + + if isinstance(type1, MappingType) and isinstance(type2, MappingType): + return _implicitly_convertible_to_for_mappings(type1, type2) + + if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): + return _implicitly_convertible_to_for_arrays(type1, type2) + + return False + + +def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return _implicitly_convertible_to(type1.type, type2.type) + + +def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + return type1.type_from == type2.type_from and type1.type_to == type2.type_to + + +def _implicitly_convertible_to_for_elementary_types( + type1: ElementaryType, type2: ElementaryType +) -> bool: + """ + Returns True if type1 may be implicitly converted to type2. + """ + if type1.type == "bool" and type2.type == "bool": + return True + if type1.type == "string" and type2.type == "string": + return True + if type1.type == "bytes" and type2.type == "bytes": + return True + if type1.type == "address" and type2.type == "address": + return _implicitly_convertible_to_for_addresses(type1, type2) + if type1.type in Uint and type2.type in Uint: + return _implicitly_convertible_to_for_uints(type1, type2) + if type1.type in Int and type2.type in Int: + return _implicitly_convertible_to_for_ints(type1, type2) + if ( + type1.type != "bytes" + and type2.type != "bytes" + and type1.type in Byte + and type2.type in Byte + ): + return _implicitly_convertible_to_for_bytes(type1, type2) + return False + + +def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. + """ + assert type1.type in Byte and type2.type in Byte + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_addresses(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. + """ + assert type1.type == "address" and type2.type == "address" + # payable attribute to be implemented; for now, always return True + return True + + +def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both ints. + """ + assert type1.type in Int and type2.type in Int + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: + """ + Returns True if type1 may be implicitly converted to type2 assuming they are both uints. + """ + assert type1.type in Uint and type2.type in Uint + assert type1.size is not None + assert type2.size is not None + + return type1.size <= type2.size + + +def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: + """ + Returns True if contract1 may be implicitly converted to contract2. + """ + return contract1 == contract2 or contract2 in contract1.inheritance class IncorrectUsingFor(AbstractDetector): @@ -48,150 +191,19 @@ class IncorrectUsingFor(AbstractDetector): "matching a type used in these statements. " ) - @staticmethod - def _implicitly_convertible_to_for_contracts(contract1: Contract, contract2: Contract) -> bool: - """ - Returns True if contract1 may be implicitly converted to contract2. - """ - return contract1 == contract2 or contract2 in contract1.inheritance - - @staticmethod - def _implicitly_convertible_to_for_uints(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both uints. - """ - assert type1.type in Uint and type2.type in Uint - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_ints(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both ints. - """ - assert type1.type in Int and type2.type in Int - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_addresses( - type1: ElementaryType, type2: ElementaryType - ) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both addresses. - """ - assert type1.type == "address" and type2.type == "address" - # payable attribute to be implemented; for now, always return True - return True - - @staticmethod - def _implicitly_convertible_to_for_bytes(type1: ElementaryType, type2: ElementaryType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2 assuming they are both bytes. - """ - assert type1.type in Byte and type2.type in Byte - - return type1.size <= type2.size - - @staticmethod - def _implicitly_convertible_to_for_elementary_types( - type1: ElementaryType, type2: ElementaryType - ) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - if type1.type == "bool" and type2.type == "bool": - return True - if type1.type == "string" and type2.type == "string": - return True - if type1.type == "bytes" and type2.type == "bytes": - return True - if type1.type == "address" and type2.type == "address": - return IncorrectUsingFor._implicitly_convertible_to_for_addresses(type1, type2) - if type1.type in Uint and type2.type in Uint: - return IncorrectUsingFor._implicitly_convertible_to_for_uints(type1, type2) - if type1.type in Int and type2.type in Int: - return IncorrectUsingFor._implicitly_convertible_to_for_ints(type1, type2) - if ( - type1.type != "bytes" - and type2.type != "bytes" - and type1.type in Byte - and type2.type in Byte - ): - return IncorrectUsingFor._implicitly_convertible_to_for_bytes(type1, type2) - return False - - @staticmethod - def _implicitly_convertible_to_for_mappings(type1: MappingType, type2: MappingType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - return type1.type_from == type2.type_from and type1.type_to == type2.type_to - - @staticmethod - def _implicitly_convertible_to_for_arrays(type1: ArrayType, type2: ArrayType) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - return IncorrectUsingFor._implicitly_convertible_to(type1.type, type2.type) - - @staticmethod - def _implicitly_convertible_to(type1: Type, type2: Type) -> bool: - """ - Returns True if type1 may be implicitly converted to type2. - """ - if isinstance(type1, TypeAlias) or isinstance(type2, TypeAlias): - if isinstance(type1, TypeAlias) and isinstance(type2, TypeAlias): - return type1.type == type2.type - return False - - if isinstance(type1, UserDefinedType) and isinstance(type2, UserDefinedType): - if isinstance(type1.type, Contract) and isinstance(type2.type, Contract): - return IncorrectUsingFor._implicitly_convertible_to_for_contracts( - type1.type, type2.type - ) - - if isinstance(type1.type, Structure) and isinstance(type2.type, Structure): - return type1.type.canonical_name == type2.type.canonical_name - - if isinstance(type1.type, Enum) and isinstance(type2.type, Enum): - return type1.type.canonical_name == type2.type.canonical_name - - if isinstance(type1, ElementaryType) and isinstance(type2, ElementaryType): - return IncorrectUsingFor._implicitly_convertible_to_for_elementary_types(type1, type2) - - if isinstance(type1, MappingType) and isinstance(type2, MappingType): - return IncorrectUsingFor._implicitly_convertible_to_for_mappings(type1, type2) - - if isinstance(type1, ArrayType) and isinstance(type2, ArrayType): - return IncorrectUsingFor._implicitly_convertible_to_for_arrays(type1, type2) - - return False - - @staticmethod - def _is_correctly_used(type_: Type, library: Contract) -> bool: - """ - Checks if a `using library for type_` statement is used correctly (that is, does library contain any function - with type_ as the first argument). - """ - for f in library.functions: - if len(f.parameters) == 0: - continue - if not IncorrectUsingFor._implicitly_convertible_to(type_, f.parameters[0].type): - continue - return True - return False - - def _append_result(self, results: list, uf: UsingForTopLevel, type_: Type, library: Contract): - info = ( - f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in " - f"{library}.\n" - ) + def _append_result( + self, results: List[Output], uf: UsingForTopLevel, type_: Type, library: Contract + ) -> None: + info: DETECTOR_INFO = [ + f"using-for statement at {uf.source_mapping} is incorrect - no matching function for {type_} found in ", + library, + ".\n", + ] res = self.generate_result(info) results.append(res) - def _detect(self): - results = [] + def _detect(self) -> List[Output]: + results: List[Output] = [] for uf in self.compilation_unit.using_for_top_level: # UsingForTopLevel.using_for is a dict with a single entry, which is mapped to a list of functions/libraries @@ -200,7 +212,12 @@ def _detect(self): for lib_or_fcn in uf.using_for[type_]: # checking for using-for with functions is already performed by the compiler; we only consider libraries if isinstance(lib_or_fcn, UserDefinedType): - if not self._is_correctly_used(type_, lib_or_fcn.type): - self._append_result(results, uf, type_, lib_or_fcn.type) + lib_or_fcn_type = lib_or_fcn.type + if ( + isinstance(type_, Type) + and isinstance(lib_or_fcn_type, Contract) + and not _is_correctly_used(type_, lib_or_fcn_type) + ): + self._append_result(results, uf, type_, lib_or_fcn_type) return results diff --git a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt index 4a85bca5fc..518fba20d6 100644 --- a/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt +++ b/tests/e2e/detectors/snapshots/detectors__detector_IncorrectUsingFor_0_8_17_IncorrectUsingForTopLevel_sol__0.txt @@ -1,24 +1,24 @@ -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#84 is incorrect - no matching function for bytes17[] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#85 is incorrect - no matching function for uint256 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#90 is incorrect - no matching function for mapping(int256 => uint128) found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#86 is incorrect - no matching function for int256 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#89 is incorrect - no matching function for E2 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#93 is incorrect - no matching function for bytes[][] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#92 is incorrect - no matching function for string[][] found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#91 is incorrect - no matching function for mapping(int128 => uint256) found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#87 is incorrect - no matching function for bytes18 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#88 is incorrect - no matching function for S2 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#83 is incorrect - no matching function for C3 found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). -using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L. +using-for statement at tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#94 is incorrect - no matching function for custom_int found in L (tests/e2e/detectors/test_data/incorrect-using-for/0.8.17/IncorrectUsingForTopLevel.sol#48-64). From fda41f4fb47be2c9aaa6276c07fa67aac2878dcb Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Tue, 23 May 2023 18:11:59 -0500 Subject: [PATCH 89/91] chore: bump pip-audit to 1.08 --- .github/workflows/pip-audit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pip-audit.yml b/.github/workflows/pip-audit.yml index 20367787da..4fbc1a3fdc 100644 --- a/.github/workflows/pip-audit.yml +++ b/.github/workflows/pip-audit.yml @@ -34,6 +34,6 @@ jobs: python -m pip install . - name: Run pip-audit - uses: pypa/gh-action-pip-audit@v1.0.7 + uses: pypa/gh-action-pip-audit@v1.0.8 with: virtual-environment: /tmp/pip-audit-env From 00461aad9a6c9205cbf826aa83f6c258609ade91 Mon Sep 17 00:00:00 2001 From: William E Bodell III Date: Fri, 2 Jun 2023 08:39:42 -0500 Subject: [PATCH 90/91] slither-read-storage native POA support (#1843) * Native support for POA networks in read_storage * Set `srs.rpc` before `srs.block` * Type hint * New RpcInfo class w/ RpcInfo.web3 and RpcInfo.block In SlitherReadStorage, self.rpc_info: Optional[RpcInfo] replaces self.rpc, self._block, self._web3 * Black * Update test_read_storage.py * Add import in __init__.py * Avoid instantiating SRS twice * Add comment about `get_block` for POA networks * Pylint * Black * Allow other valid block string arguments ["latest", "earliest", "pending", "safe", "finalized"] * `args.block` can be in ["latest", "earliest", "pending", "safe", "finalized"] * Use BlockTag enum class for valid `str` arguments * Tweak `RpcInfo.__init__()` signature * get rid of `or "latest"` * Import BlockTag * Use `web3.types.BlockIdentifier` * Revert BlockTag enum * Pylint and black * Replace missing newline * Update slither/tools/read_storage/__main__.py Better, cleaner python Co-authored-by: alpharush <0xalpharush@protonmail.com> * Drop try/except around args.block parsing allow ValueError if user provides invalid block arg * Remove unused import --------- Co-authored-by: alpharush <0xalpharush@protonmail.com> --- slither/tools/read_storage/__init__.py | 2 +- slither/tools/read_storage/__main__.py | 29 +++++----- slither/tools/read_storage/read_storage.py | 57 +++++++++++++------ tests/tools/read-storage/test_read_storage.py | 6 +- 4 files changed, 57 insertions(+), 37 deletions(-) diff --git a/slither/tools/read_storage/__init__.py b/slither/tools/read_storage/__init__.py index dbc1e5bc0e..df9b8280d8 100644 --- a/slither/tools/read_storage/__init__.py +++ b/slither/tools/read_storage/__init__.py @@ -1 +1 @@ -from .read_storage import SlitherReadStorage +from .read_storage import SlitherReadStorage, RpcInfo diff --git a/slither/tools/read_storage/__main__.py b/slither/tools/read_storage/__main__.py index 1a8901321d..f6635ab4be 100644 --- a/slither/tools/read_storage/__main__.py +++ b/slither/tools/read_storage/__main__.py @@ -7,7 +7,7 @@ from crytic_compile import cryticparser from slither import Slither -from slither.tools.read_storage.read_storage import SlitherReadStorage +from slither.tools.read_storage.read_storage import SlitherReadStorage, RpcInfo def parse_args() -> argparse.Namespace: @@ -126,22 +126,19 @@ def main() -> None: else: contracts = slither.contracts - srs = SlitherReadStorage(contracts, args.max_depth) - - try: - srs.block = int(args.block) - except ValueError: - srs.block = str(args.block or "latest") - + rpc_info = None if args.rpc_url: - # Remove target prefix e.g. rinkeby:0x0 -> 0x0. - address = target[target.find(":") + 1 :] - # Default to implementation address unless a storage address is given. - if not args.storage_address: - args.storage_address = address - srs.storage_address = args.storage_address - - srs.rpc = args.rpc_url + valid = ["latest", "earliest", "pending", "safe", "finalized"] + block = args.block if args.block in valid else int(args.block) + rpc_info = RpcInfo(args.rpc_url, block) + + srs = SlitherReadStorage(contracts, args.max_depth, rpc_info) + # Remove target prefix e.g. rinkeby:0x0 -> 0x0. + address = target[target.find(":") + 1 :] + # Default to implementation address unless a storage address is given. + if not args.storage_address: + args.storage_address = address + srs.storage_address = args.storage_address if args.variable_name: # Use a lambda func to only return variables that have same name as target. diff --git a/slither/tools/read_storage/read_storage.py b/slither/tools/read_storage/read_storage.py index 2947081daa..72331f66ad 100644 --- a/slither/tools/read_storage/read_storage.py +++ b/slither/tools/read_storage/read_storage.py @@ -6,8 +6,11 @@ from eth_abi import decode, encode from eth_typing.evm import ChecksumAddress -from eth_utils import keccak +from eth_utils import keccak, to_checksum_address from web3 import Web3 +from web3.types import BlockIdentifier +from web3.exceptions import ExtraDataLengthError +from web3.middleware import geth_poa_middleware from slither.core.declarations import Contract, Structure from slither.core.solidity_types import ArrayType, ElementaryType, MappingType, UserDefinedType @@ -42,18 +45,43 @@ class SlitherReadStorageException(Exception): pass +class RpcInfo: + def __init__(self, rpc_url: str, block: BlockIdentifier = "latest") -> None: + assert isinstance(block, int) or block in [ + "latest", + "earliest", + "pending", + "safe", + "finalized", + ] + self.rpc: str = rpc_url + self._web3: Web3 = Web3(Web3.HTTPProvider(self.rpc)) + """If the RPC is for a POA network, the first call to get_block fails, so we inject geth_poa_middleware""" + try: + self._block: int = self.web3.eth.get_block(block)["number"] + except ExtraDataLengthError: + self._web3.middleware_onion.inject(geth_poa_middleware, layer=0) + self._block: int = self.web3.eth.get_block(block)["number"] + + @property + def web3(self) -> Web3: + return self._web3 + + @property + def block(self) -> int: + return self._block + + # pylint: disable=too-many-instance-attributes class SlitherReadStorage: - def __init__(self, contracts: List[Contract], max_depth: int) -> None: + def __init__(self, contracts: List[Contract], max_depth: int, rpc_info: RpcInfo = None) -> None: self._checksum_address: Optional[ChecksumAddress] = None self._contracts: List[Contract] = contracts self._log: str = "" self._max_depth: int = max_depth self._slot_info: Dict[str, SlotInfo] = {} self._target_variables: List[Tuple[Contract, StateVariable]] = [] - self._web3: Optional[Web3] = None - self.block: Union[str, int] = "latest" - self.rpc: Optional[str] = None + self.rpc_info: Optional[RpcInfo] = rpc_info self.storage_address: Optional[str] = None self.table: Optional[MyPrettyTable] = None @@ -73,18 +101,12 @@ def log(self) -> str: def log(self, log: str) -> None: self._log = log - @property - def web3(self) -> Web3: - if not self._web3: - self._web3 = Web3(Web3.HTTPProvider(self.rpc)) - return self._web3 - @property def checksum_address(self) -> ChecksumAddress: if not self.storage_address: raise ValueError if not self._checksum_address: - self._checksum_address = self.web3.to_checksum_address(self.storage_address) + self._checksum_address = to_checksum_address(self.storage_address) return self._checksum_address @property @@ -223,11 +245,12 @@ def get_slot_values(self, slot_info: SlotInfo) -> None: """Fetches the slot value of `SlotInfo` object :param slot_info: """ + assert self.rpc_info is not None hex_bytes = get_storage_data( - self.web3, + self.rpc_info.web3, self.checksum_address, int.to_bytes(slot_info.slot, 32, byteorder="big"), - self.block, + self.rpc_info.block, ) slot_info.value = self.convert_value_to_type( hex_bytes, slot_info.size, slot_info.offset, slot_info.type_string @@ -600,15 +623,15 @@ def _get_array_length(self, type_: Type, slot: int) -> int: (int): The length of the array. """ val = 0 - if self.rpc: + if self.rpc_info: # The length of dynamic arrays is stored at the starting slot. # Convert from hexadecimal to decimal. val = int( get_storage_data( - self.web3, + self.rpc_info.web3, self.checksum_address, int.to_bytes(slot, 32, byteorder="big"), - self.block, + self.rpc_info.block, ).hex(), 16, ) diff --git a/tests/tools/read-storage/test_read_storage.py b/tests/tools/read-storage/test_read_storage.py index 6d2ab007dd..ea04a91fe9 100644 --- a/tests/tools/read-storage/test_read_storage.py +++ b/tests/tools/read-storage/test_read_storage.py @@ -12,7 +12,7 @@ from web3.contract import Contract from slither import Slither -from slither.tools.read_storage import SlitherReadStorage +from slither.tools.read_storage import SlitherReadStorage, RpcInfo TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data" @@ -105,8 +105,8 @@ def test_read_storage(web3, ganache, solc_binary_path) -> None: sl = Slither(Path(TEST_DATA_DIR, "storage_layout-0.8.10.sol").as_posix(), solc=solc_path) contracts = sl.contracts - srs = SlitherReadStorage(contracts, 100) - srs.rpc = ganache.provider + rpc_info: RpcInfo = RpcInfo(ganache.provider) + srs = SlitherReadStorage(contracts, 100, rpc_info) srs.storage_address = address srs.get_all_storage_variables() srs.get_storage_layout() From 5f9abc2e89e8d49eb20a1d4b882ec98721b5381f Mon Sep 17 00:00:00 2001 From: A23187 <41769181+A-23187@users.noreply.github.com> Date: Sun, 4 Jun 2023 02:14:59 +0800 Subject: [PATCH 91/91] fix evm printer for solc > 0.6.0 (#1567) --- slither/analyses/evm/convert.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slither/analyses/evm/convert.py b/slither/analyses/evm/convert.py index bff308cbca..5e8c4a1280 100644 --- a/slither/analyses/evm/convert.py +++ b/slither/analyses/evm/convert.py @@ -186,7 +186,7 @@ def generate_source_to_evm_ins_mapping(evm_instructions, srcmap_runtime, slither if mapping_item[i] == "": mapping_item[i] = int(prev_mapping[i]) - offset, _length, file_id, _ = mapping_item + offset, _length, file_id, *_ = mapping_item prev_mapping = mapping_item if file_id == "-1":